0
我有一個包含Collection<Bar> bars
的實體類Foo foo
。我嘗試了各種方法,但我無法成功更新我的收藏。使用JPA更新集合問題
一個嘗試:
foo = em.find(key);
foo.getBars().clear();
foo.setBars(bars);
em.flush; \\ commit, etc.
這追加新採集到老。
的另一種嘗試:
foo = em.find(key);
bars = foo.getBars();
for (Bar bar : bars) {
em.remove(bar);
}
em.flush;
在這一點上,我想我可以添加新的集合,但我發現,實體FOO已經被消滅了。
以下是一些註釋。 在富:
@OneToMany(cascade = { CascadeType.ALL }, mappedBy = "foo")
private List<Bar> bars;
在酒吧:
@ManyToOne(optional = false, cascade = { CascadeType.ALL })
@JoinColumn(name = "FOO_ID")
private Foo foo;
任何人都有這個問題嗎?有任何想法嗎?如果從private Foo foo
刪除CascadeType.ALL
和刪除Bar
年代後調用foo.getBars().clear()
當我嘗試,我得到: 'javax.persistence.EntityNotFoundException:[com.Bar#]' –
2010-03-12 19:04:43
@FarmBoy::通過堅持刪除的實體還應當調用'foo.getBars()清( )''刪除'酒吧'後。 – axtavt 2010-03-12 19:07:11
它現在有效,非常感謝。 – 2010-03-12 19:18:52