除了使用XML配置來映射對象和數據庫表,還可以使用注解來完成持久化。使用注解需要導入Hibernate Annotations擴展包
@Entity -加在類的前面,將類聲明為持久化類。
-javax.Persistence.Entity :JPA的Entity,通用性好
-org.hibernate.annotations.Entity :Hibernate的Entity,有Hibernate特有的功能,如dynamicUpdate, 可以作為JPAEntity的補充
@Table -加在類的前面,為類聲明關聯的表名。如果表名和類名相同,可以省略。
@Table(name="t_name")
@Proxy -加在類的前面,修改類級的引索策略,默認是延遲加載 可以不寫
@Proxy(lazy=false) -改為立即加載
@Column -
如果屬性名和對應的列名不同, 或者get/set方法對應的屬性名不是列名, 需要加在屬性前面,或者加在get/set方法前面。
@ID
加在主鍵的屬性前面,或者加在get/set方法前面,補充屬性:
@GeneratedValue -主鍵自增策略
@GeneratedValue(Strategy=GenerationType.Auto)
自定義SEQUENCE(ORALCE使用)
@GeneratedValue(Strategy=GenerationType.Sequence, generator="seq_name")
@SequenceGenerator(name="seq_name", sequenceName="SEQ_ID")//可以對序列生成的值進行調整
@Transcient -加在屬性前面,聲明該屬性不需要被持久化
@ManyToOne-多對一(外鍵)關聯屬性
@ManyToOne(targetEntity=class_name.class)
@JoinColumn(name="c_name") 多對一對應的外鍵列名
@OneToMany -一對多關聯屬性
@OneToMany(targetEntity=class_name.class,mappedBy="property_name",cascade={CascadeType.ALL})
如果Set沒有加泛型,需要加targetEntity mappedBy是targetEntity中相關聯的屬性,並由它來維持外鍵關系
@ManyToMany -多對多