我一直在試圖刪除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關係
- 2. JPA manytoone關係刪除操作
- 3. JPA /休眠:ManyToMany刪除關係
- 4. Hibernate Jpa刪除關係行失敗
- 5. 休眠JPA值刪除OneToMany關係
- 6. JPA:反向級聯刪除
- 7. 刪除NSManagedObject反射關係的問題
- 8. 刪除關係?
- 9. CoreData沒有反比關係
- 10. Java泛型「反向關係」(和JPA)
- 11. JPA - @ManyToMany雙向關係,在反側去除實體,並與JoinTable
- 12. JPA:限制違反了刪除
- 13. 刪除RealmObject關係
- 14. 刪除OneToOne關係
- 15. 使用關係的ID與Jackson反序列化JPA關係
- 16. JPA- ManyToMany關係刪除操作從輔助表中刪除所有實體
- 17. 核心數據的反比關係,並刪除無用的對象
- 18. 不能刪除父行與JPA @OneToMany關係
- 19. 在ManyToMany關係中刪除記錄彈簧數據jpa
- 20. 使用合併刪除許多在JPA一個關係()
- 21. 刪除JPA中多對多關係時的奇怪sql行爲
- 22. 以正確的方式刪除實體和關係(JPA)
- 23. 的Hibernate,JPA不能刪除一個一對多的關係
- 24. JPA,三個實體,它們的關係。 CascadeType正確刪除?
- 25. JPA:在刪除級聯@OneToMany關係的EclipseLink
- 26. 無法刪除OneToMany與JPA的子實體關係
- 27. JPA,Eclipselink - 關係在新交易中被刪除
- 28. JPA - 從OneToMany關係中刪除一個孩子
- 29. JPA一對多關係子錶行沒有被刪除
- 30. JPA刪除一個多到一的關係
你想使用刪除多對一的一面,當要發生的事情?在最好的情況下,當然可以有一些供應商特定的有意義的功能。 –