我在使用JPA删除孤立节点时遇到了问题,映射如下
@OneToMany (cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "owner")
private List<Bikes> bikes;我在数据库中遇到了孤立角色的问题。
我可以使用注释org.hibernate.annotations.Cascade Hibernate特定标记,但显然我不想将我的解决方案与Hibernate实现捆绑在一起。
编辑:似乎JPA2.0将包含对此的支持。
发布于 2008-11-20 22:54:34
如果您将其与Hibernate一起使用,则必须显式定义注释CascadeType.DELETE_ORPHAN,该注释可以与JPA CascadeType.ALL一起使用。
如果您不打算使用Hibernate,则必须先显式删除子元素,然后再删除主记录,以避免任何孤立记录。
执行顺序
在JPA2.0中,您现在可以使用选项orphanRemoval = true
@OneToMany(mappedBy="foo", orphanRemoval=true)发布于 2010-05-28 19:18:37
如果您使用的是JPA2.0,那么您现在可以使用@xxxToMany注释的orphanRemoval=true属性来删除孤立项。
实际上,CascadeType.DELETE_ORPHAN已经在3.5.2-Final中被弃用了。
发布于 2013-10-29 05:28:02
╔═════════════╦═════════════════════╦═════════════════════╗
║ Action ║ orphanRemoval=true ║ CascadeType.ALL ║
╠═════════════╬═════════════════════╬═════════════════════╣
║ delete ║ deletes parent ║ deletes parent ║
║ parent ║ and orphans ║ and orphans ║
╠═════════════╬═════════════════════╬═════════════════════╣
║ change ║ ║ ║
║ children ║ deletes orphans ║ nothing ║
║ list ║ ║ ║
╚═════════════╩═════════════════════╩═════════════════════╝https://stackoverflow.com/questions/306144
复制相似问题