我一直在试图删除JPA实体上的反向关系,但是这一直没有奏效。我现在正在尝试将ManyToOne属性设置为null,然后使用entityManager的合并方法保存它。 ManyToOne关系用cascade all属性标记,但是在dataBase中不会删除外键。我应该怎么做?非常感谢。JPA删除反比关系
0
A
回答
1
用代码来找出你的意思会更容易。但我会尽量尝试:
@Entity
public class AEntity {
@GeneratedValue (strategy = GenerationType.SEQUENCE)
@Id int id;
//Having some cascade here doesn't matter for our case
//because we now do not cascade anything, we just set this field to
//null. Cascade=REMOVE is about never meaningful (and never fully
//fully portable) in ManyToOne side:
//just think what happens to other AEntity instances that refer to
//same BEntity.
@ManyToOne
BEntity bEntity;
public void setbEntity(BEntity bEntity) {
this.bEntity = bEntity;
}
}
public class BEntity {
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Id int id;
}
在一开始,我们有以下数据:
AEntity(ID = 1,bEntity_id = 2)
BEntity(ID = 2)
然后删除之间的连接和b:
AEntity oldDirty = em.find(AEntity.class, 1);
//modify A somewhere else in code
oldDirty.setbEntity(null);
//and bring changes in:
em.merge(oldDirty);
之后,我们有:
AEntity(ID = 1,bEntity_id = NULL)
BEntity(ⅰ d = 2)
如果BEntity还建立包含AEntity实体(这么说的双向关系),那么你必须也从那里删除,因为你要不断关心自己的关系。 OneToMany方面是可以从中级联移除的方法。
0
检查两端关系的级联类型。举例来说,如果你想,当你删除的主要实体,删除所有相关实体,注释应该是这样的:@ManyToOne(cascade={CascadeType.REMOVE})
,并在逆@OneToMany(cascade={CascadeType.REMOVE})
相关问题
- 1. JPA manytoone关系删除操作
- 2. JPA /休眠:ManyToMany删除关系
- 3. Hibernate Jpa删除关系行失败
- 4. JPA:反向级联删除
- 5. Java泛型“反向关系”(和JPA)
- 6. JPA:限制违反了删除
- 7. 删除OneToOne关系
- 8. JPA- ManyToMany关系删除操作从辅助表中删除所有实体
- 9. 使用合并删除许多在JPA一个关系()
- 10. 无法删除OneToMany与JPA的子实体关系
- 11. JPA删除一个多到一的关系
- 12. JPA,Eclipselink - 关系在新交易中被删除
- 13. 在Play中删除@OneToMany关系中的JPA对象!框架
- 14. JPA Spring数据级联删除组合多对多关系
- 15. JPA,三个实体,它们的关系。 CascadeType正确删除?
- 16. 一对多的关系JPA/Hibernate的删除链接
- 17. 以正确的方式删除实体和关系(JPA)
- 18. JPA关系OneToMany
- 19. JPA关系
- 20. @ManyToOne关系,JPA
- 21. JPA关联表不可删除
- 22. 删除相关@OneToOne自动JPA
- 23. 当我的关系删除规则设置为Nullify时,相反关系是否也会被删除?
- 24. JPA,多对多的关系,删除所有以前的关系,并进入新的关系
- 25. 休眠@ManyToMany删除关系
- 26. 帮助,删除关系表
- 27. Laravel - 删除没有关系
- 28. 删除关系学说
- 29. 删除EMF依赖关系
- 30. Rails:删除引用关系
你想使用删除多对一的一面,当要发生的事情?在最好的情况下,当然可以有一些供应商特定的有意义的功能。 –