JPA: Unidirectional ManyToMany with existing object to be inserted -


user {  set<book> _books;  @manytomany(cascade={cascadetype.merge})     @jointable(               name="bletag_label",               joincolumns={@joincolumn(name="tag_id", referencedcolumnname="id")},               inversejoincolumns={@joincolumn(name="label_id", referencedcolumnname="id")}) set<book>getbooks();  }  book {  } 

. if set cascadetype persist , try create user existing book (book1) this, unique constraint fired...

book book1 = new book("book1"); user.getbooks().add(book1);

. current solution the cascadetype merge , check user.getbooks() if book exist. if book not exist, need create (because not cascadetype.persist)

is right solution ? there better "automatic" solution available kind of use case ?

as long use book current persistence context, cascade persist should work fine, , persist new books. if book detached, first need merge or find in current persistence context.


Comments