Hibernate-annotation各註解簡介

轉載來源:http://www.cn-java.com/www1/?uid-553689-action-viewspace-itemid-7075

 

hibernate提供了hibernate annotation擴展包,它是用來替換複雜的hbm.xml文件,使得hibernate程序開發大大簡化

1. @Id 聲明屬性爲主鍵


2. @GeneratedValue表示主鍵是自動生成策略,一般該註釋和 @Id 一起使用


3. @Entity 任何 hibernte 映射對象都要有次註釋


4. @Table(name = “tablename”) 類聲明此對象映射到哪個表


5. @Column(name = “Name”,nullable=false,length=32) 聲明數據 庫字段和類屬性對應關係


6. @Lob 聲明字段爲 Clob 或 Blob 類型

 

7. @OneToMany(mappedBy=”order”,cascade = CascadeType.ALL, fetch = FetchType.LAZY)
   @OrderBy(value = “id ASC”)
   一對多聲明,和 ORM 產品聲明類似,一看就明白了。
   @ManyToOne(cascade=CascadeType.REFRESH,optional=false)
   @JoinColumn(name = “order_id”)
   聲明爲雙向關聯


8. @Temporal(value=TemporalType.DATE) 做日期類型轉換。

 

9. @OneToOne(optional= true,cascade = CascadeType.ALL, mappedBy = “person”)
   一對一關聯聲明
   @OneToOne(optional = false, cascade = CascadeType.REFRESH)
   @JoinColumn(name = “Person_ID”, referencedColumnName = “personid”,unique = true)
   聲明爲雙向關聯

 

10. @ManyToMany(mappedBy= “students”)
   多對多關聯聲明。
  @ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  @JoinTable(name = “Teacher_Student”,
    joinColumns = {@JoinColumn(name = “Teacher_ID”, referencedColumnName = “teacherid”)},
    inverseJoinColumns = {@JoinColumn(name = “Student_ID”, referencedColumnName =
    “studentid”)})
   多對多關聯一般都有個關聯表,是這樣聲明的!

 

11. @Transiten表示此屬性與表沒有映射關係,是一個暫時的屬性

 

12. @Cache(usage= CacheConcurrencyStrategy.READ_WRITE)表示此對象應用緩存

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章