介紹Hibernate處理級聯(lián)操作
Hibernate有很多值得學習的地方,這里我們主要介紹Hibernate處理級聯(lián)操作,包括介紹Hibernate映射關系等方面。
Hibernate處理級聯(lián)操作
Java 持久性映射過程中最重要和最復雜的一環(huán)就是確定如何映射表間的關系。像其他產品一樣, Hibernate 在該領域中提供了高度的靈活性,但卻是以復雜度的增加為代價。我們將通過研究幾個常見案例來了解如何使用注釋來處理這一問題。
其中一種最常用的關系就是多對一的關系。假定在以上示例中每個 ModelPlane 通過多對一的關系(也就是說,每個飛機模型只與一種飛機類型建立聯(lián)系,盡管指定的飛機類型可以與七種飛機模型建立聯(lián)系)來與 PlaneType 建立聯(lián)系。可如下進行映射:
- @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
- public PlaneType getPlaneType() {
- return planeType;
- }
CascadeType 值表明Hibernate處理級聯(lián)操作。
另一種常用的關系與上述關系相反:一對多再對一關系,也稱為集合。在老式的 Hibernate 版本中進行映射或使用注釋時,集合令人頭疼,這里我們將簡要加以探討,以使您了解如何處理集合,例如,在以上示例中每個 PlaneType 對象都可能會包含一個 ModelPlanes 集合。可映射如下:
- @OneToMany(mappedBy="planeType",cascade=CascadeType.ALL,fetch=FetchType.EAGER)
- @OrderBy("name")
- public List<ModelPlane> getModelPlanes() {
- return modelPlanes;
- }
【編輯推薦】