0
我的模型看起來像這樣(在現實情況下,有getter和setter):合併分離對象刪除兒童
class Foo {
Set<Bar> bars;
void attachBars(Set<Bar> bars){
this.bars = bars;
for(Bar bar : bars)
bar.foo = this;
}
}
class Bar {
Set<Baz> bazes;
}
class Baz {
}
然後我執行:
Foo foo = e.find(Foo.class, "id");
Hibernate.initialize(foo.bars);
em.detach(foo)
Foo foo2 = e.find(Foo.class, "id");
doSomeChanges(foo2);
foo2.attachBars(foo.bars);
我看到的在調試器:
之前attachBars(foo.bars);
bar.bazes
字段不可訪問由於LazyInitializationException
之後attachBars(foo.bars);
其中bar.bazes
字段設置爲空,並且在em.merge之後,將bazes從數據庫中刪除。
帶附加bars.clear(),但確定。我會檢查這是否是問題。 – Krever 2014-11-05 14:08:21