有一种方法可以使用@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