Hibernate @ManyToOne funktioniert nur mit CascadeType.ALLE

Ich bin mit Hibernate 3.3.1, und ich möchte erstellen Sie eine Beziehung zwischen Personen und einer zugeordneten Unternehmen. Sie sollen lose gekoppelt, aber ich möchte gern
um eine Firma zu schaffen, die über Kaskaden und nicht explizit aufrufen saveOrUpdate(newCompany).

I definiert die folgenden Elemente:

class Company
{
   @Id
   Long companyId;
   String name;
}

class Person
{
   @Id
   Long personId;
   String name;
   @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE})
   Company company;
}

in meinem dao mache ich die folgenden:

testpers.setCompany (newCompany);
session.saveOrUpdate(testpers);

und ich bekomme eine Ausnahme

org.hibernate.TransientObjectException: Objekt verweist auf eine nicht gespeicherte
transiente Instanz - speichern Sie die transiente Instanz vor dem Spülen:
consearch.Modell.core.Unternehmen

Beim kommentieren mit "cascade = CascadeType.ALLE" funktioniert es, aber die möchte ich nicht auch
ccade Löschen (z.B. wenn ein Unternehmen entfernt ist, dann die person, die nicht entfernt werden sollten)

Ich wunderte mich, dass niemand dieses problem hatte, bevor
Vielen Dank im Voraus für die Hilfe.
Shane

InformationsquelleAutor Shannon | 2013-08-20
Schreibe einen Kommentar