我有@ManyToOne从子到父的单向映射,如下所示:
@ManyToOne()
@JoinColumn(name = "PARENT_ID")
private ParentEntity parent;
我可以删除父级,当移除最后一个子级而没有从ParentEntity引用到ChildEntities时?我试过的所有注释都没有起作用。
答案 0 :(得分:0)
不,你不能只用注释做:hibernate不知道第一个,第二个或最后一个孩子。要解决任务,你可以编写@PostRemove
拦截器(在jpa中,或在hibernate中的监听器),在其中计算case" last child",调用实体管理器并删除parent。在实体中进行DAO操作并不完美,但如果你真的想要....
答案 1 :(得分:0)
AFAIK没有jpa的方法来做这件事。 但您可以在删除方法中检查服务中的子实体数,如果是最后一个则删除父实体。