![](/img/trans.png)
[英]ManyToOne & OneToMany & ManyToOne mapping JPA / Hibernate
[英]JPA/Hibernate ManyToMany vs two-sided OneToMany/ManyToOne
我正在開發JavaEE應用程序,並使用JPA / Hibernate作為持久性引擎。 在開發應用程序時,我想到了一些問題。
該應用程序由用戶及其在N:M關系中的角色組成。 這是上述表的數據庫子集。
我是Hibernate的新手,起初我要求IntelliJ IDEA為我生成映射。 它所做的是生成以下Java類:
因此,它為關系表和兩個1:N關系生成了一個映射,一個在user
和userXrole
之間,一個在role
和userXrole
之間。
經過研究,我發現通過使用@ManyToMany
批注,我可以省略將userXrole
表映射到Java類,而在批注中將其聲明為@JoinTable
。
所以問題是:
它只是一種有助於生成的更通用的方法,還是具有其他任何優點。 您會贊成一種方法還是另一種方法?
它只是一種有助於生成的更通用的方法,還是具有其他任何優點。
JPA不知道一個表是否僅僅是一個@JoinTable
表,這就是為什么必須告訴它(使用@JoinTable
)。 生成器可能會猜測,但是如果表名與JPA的默認值匹配,它可能只會生成@ManyToMany
。
您會贊成一種方法還是另一種方法?
如果我沒有理由(可能對延遲/渴望獲取進行更細粒度的控制?)沒有單獨映射實體的原因,則應該使用@ManyToMany,這主要是因為更少的代碼=更少的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.