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