JPA @ManyToOne会在删除最后一个子项时自动删除父项

时间:2015-04-03 11:17:50

标签: java hibernate jpa

我有@ManyToOne从子到父的单向映射,如下所示:

@ManyToOne()
@JoinColumn(name = "PARENT_ID")
private ParentEntity parent;

我可以删除父级,当移除最后一个子级而没有从ParentEntity引用到ChildEntities时?我试过的所有注释都没有起作用。

2 个答案:

答案 0 :(得分:0)

不,你不能只用注释做:hibernate不知道第一个,第二个或最后一个孩子。要解决任务,你可以编写@PostRemove拦截器(在jpa中,或在hibernate中的监听器),在其中计算case" last child",调用实体管理器并删除parent。在实体中进行DAO操作并不完美,但如果你真的想要....

答案 1 :(得分:0)

AFAIK没有jpa的方法来做这件事。 但您可以在删除方法中检查服务中的子实体数,如果是最后一个则删除父实体。