有一種方法可以使用@jointable
映射多對多關係,並避免可聯接行的自動級聯?JPA(with Hibernate)@ManyToMany @JoinTable關係級聯
的@ManyToMany
註釋的級聯屬性是創建/合併/刪除相關的實體(不是jointable行)和@JoinTable
插入/更新的joincolumns/inversejoincolumns屬性被忽略,當我堅持/合併附屬實體的關係。
例:User
(所有者)×Role
(的mappedBy)的關係,當我合併與角色的收集空的用戶,表USER_ROLE
的所有行被該用戶刪除。
韓國社交協會提前。
這是我的觀點:
爲了使問題的問題簡單,讓我們假設我有三個屬性的用戶實體:ID,電子郵件和一組角色(所有者,@ManyToMany的,@JoinTable )。 我會合並有至少一個或多個角色的用戶實體,沒有找到它通過的EntityManager:
User user = new User(); //detached
user.setId(1L); // for merge
user.setEmail("[email protected]");
entityManager.merge(user);
在數據庫中的結果是:
UPDATE user... /*ok!*/
delete from user_role where ... /* I'd like to avoid it! */
你有什麼問題? – Rembo
非常感謝您的回覆。我將編輯我的問題以發佈問題 – Tiago
@Tiago,因此您嘗試將用戶與數據庫中的其他用戶合併? – user3252538