obj.getLineItems() gibt eine Reihe getrennter Instanzen zurück (sie sind nicht mit der aktuellen Hibernate-Sitzung verknüpft). Der einfachste Weg, das Problem zu lösen, besteht darin, den Purchase zusammenzuführen vor dem Festschreiben der Transaktion:
purchase = session.merge(purchase);
Auf diese Weise wird der Zusammenführungsvorgang an den zugehörigen LineCommand kaskadiert Instanzen.