У меня есть класс сущности Foo foo
, который содержит Collection<Bar> bars
. Я пробовал разные способы, но не могу успешно обновить свою коллекцию.
Одна попытка:
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;
Кто-нибудь еще имел проблемы с этим? Есть идеи?