Dobrý den
nemuhu najít problém.
Mám 2 entity v asociaci ManyToMany.
Pokud ukládám nový objekt - není ještě v DB. Uloží se správně i
asociovaná kolekce.
tedy:
autor1 = service.find(1);
autor2 = service.find(2);
book = new Book();
book.addAutor(autor1);
book.addAutor(autor2);
service.save(book);
//OK
pokud, ale objekt Book už je persistovaný a přidám do kolekce další
objekty ,
tyto objekty se do DB neuloží. Nemohu přijít na to kde dělám chybu:
autor4 = service.find(4);
book = service.find(1);
book.addAutor(autor4);
service.save(book);
//autor4 se do asociované tabulky nepřidá
---------------------------------------------------------------
Zde přikládám asociace:
@ManyToMany
@JoinTable(name = "Autor_Book",
joinColumns = [EMAIL PROTECTED](name="bookId")},
inverseJoinColumns = [EMAIL PROTECTED](name="autorId")}
)
private List<Autor> autors = new ArrayList();
@ManyToMany(mappedBy="autors")
private List<Book> books = new ArrayList();
metoda save:
public void save(Book book) {
if (book.getId() == null) {
entityManager.persist(book);
} else {
entityManager.merge(book);
}
}
-----------------------------------------------------
Děkuji za pomoc
Tomáš Jurman