Java Hibernate ManyToMany阻止实体删除时删除关联
我试图删除实体而不删除多对多关系(不是引用的实体!) 由于文件原因,这是一个有效的删除 参见示例169: 只需删除父端,Hibernate就可以安全地删除关联的链接记录,如以下示例所示: 例169。单向@ManyToMany实体删除Java Hibernate ManyToMany阻止实体删除时删除关联,java,hibernate,Java,Hibernate,我试图删除实体而不删除多对多关系(不是引用的实体!) 由于文件原因,这是一个有效的删除 参见示例169: 只需删除父端,Hibernate就可以安全地删除关联的链接记录,如以下示例所示: 例169。单向@ManyToMany实体删除 Person person1 = entityManager.find( Person.class, personId ); entityManager.remove( person1 ); DELETE FROM Person_Address WHERE P
Person person1 = entityManager.find( Person.class, personId );
entityManager.remove( person1 );
DELETE FROM Person_Address
WHERE Person_id = 1
DELETE FROM Person
WHERE id = 1
我的目标是,如果删除了具有现有mtm集合项的实体,则会出现约束冲突。My DB在m-to-m表中有关于DELETE的限制,但由于执行了person_id DELETE,所以从未到达该限制
我看到了不同的可能方法:
我不确定我是否遵循了这一部分:“我希望这些数据是严格只读的!它是从“引用实体”插入、删除和管理的。为什么它不是关联的反面呢?@crizzis,面对面实体,我想查看附加的数据。数据的实体包含PersonToData对象的集合(由两个链接和额外数据组成),该对象被保存并级联。我不想要PersonToData对象,只是直接收集数据。我在readonly purpouse中需要它,它工作正常,在调用Delete之前,在
Person.data
上放置@Immutable
delete
from
person_to_data
where
person_id=?
delete
from
person
where
id=?
Person person1 = entityManager.find( Person.class, personId );
entityManager.remove( person1 );
DELETE FROM Person_Address
WHERE Person_id = 1
DELETE FROM Person
WHERE id = 1