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