我使用带有 JPA 注释的 ManyToMany,我需要您的宝贵建议。(假设人员和地址。相同的地址是指更多的人(住在同一地址))。我必须从该地址中删除一个人。
Person p1 = new Person();
Person p2 = new Person();
Address add1 = new Address();
p1.add(add1);
p2.add(add1);
对两个人使用相同的添加参考。做的也不错
add1.add(p1) ;
add1.add(p2) ;
然后在合并或持久化时适当地映射。
p1 - 添加1 p2 - 添加1
当我这样做时,我必须单独删除 p2
p2.removeAddress(add1)
removeAddress(add1) { coll.remove(add1) }
发生的情况是它删除了地址条目,并再次由 Hibernate jpa 提供者再次尝试在地址实体上持久化并说“已删除的实体传递给持久性”并且发生事务回滚。我正在映射为
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "XXXX", joinColumns = { @JoinColumn(name = "X1_ID", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "X2_ID", nullable = false, updatable = false) })
private Collection<Parser> parsers;
Please share your ideas.