0
我是JPA Hibernate實現的新手,我試圖理解EntityManager.merge是如何工作的。
我有兩個班,@ManyToOne關係如下列情形JPA合併外鍵丟失
class A{
private String name;
........
get...
set...
}
class B{
private String name;
@ManyToOne(fetch=FetchType.LAZY, cascade=CascadeType.MERGE)
private A a;
........
get...
set...
}
我有GUI,您可以查看和更改只B房產的 - 在未裝載的類並沒有打開會話中查看。
當試圖保存(合併)在後端的變化:
entityManager.merge(b); //the object "b" created from view has "a" set to null
在B表的外鍵關係數據庫(參考表A)是失去了 - 設置爲null;
這不是我想要保持關係和合並 - 保存在GUI中進行的更改,而不會丟失多對一的關係
也許我所期待的是不可能的,我需要做的是:
dbB b = entityManager.find(B.class, id);
dbB.setName(b.getName());
dbB.set........
entityManager.merge(dbB);