【发布时间】:2010-03-12 18:44:04
【问题描述】:
我有一个包含Collection<Bar> bars 的实体类Foo foo。我尝试了多种方法,但无法成功更新我的收藏。
一次尝试:
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 已被清除。
这里有一些注释。 在Foo:
@OneToMany(cascade = { CascadeType.ALL }, mappedBy = "foo")
private List<Bar> bars;
在酒吧:
@ManyToOne(optional = false, cascade = { CascadeType.ALL })
@JoinColumn(name = "FOO_ID")
private Foo foo;
还有其他人遇到过这个问题吗?有什么想法吗?
【问题讨论】:
标签: java hibernate jpa jakarta-ee persistence