Hibernate wirft TransientPropertyValueException beim speichern einer Entität

Ich habe zwei verknüpfte Entitäten, Einrichtung und Registrierung, so dass es eine viele-zu-eins-Beziehung zwischen der Registrierung und der Einrichtung. Daher sollten wir in der Lage sein, die Registrierung Einträge für eine einzelne institution.

Die Entitäten und Beziehungen Zuordnung:

@Entity
public class Registration{

    @NotNull @ManyToOne(optional=false)
        @JoinColumn(updatable=false, insertable=false)
        private Institution institution;

}


@Entity
public class Institution{
    @OneToMany(cascade={CascadeType.REMOVE, CascadeType.MERGE}, fetch=FetchType.EAGER, mappedBy="institution", orphanRemoval=true)
        private Set<Registration> registrations;
}

- und Fehler-trace ist verfügbar hier:

[INFO] 04:34:26,043 WARN  [org.hibernate.action.internal.UnresolvedEntityInsertActions] (http-localhost/127.0.0.1:8888-4) HHH000437: Attempting to save one or more entities that have a non-nullable association with an unsaved transient entity. The unsaved transient entity must be saved in an operation prior to saving these dependent entities.
[INFO]  Unsaved transient entity: ([com.bitrunk.apps.nussa.client.shared.Institution#<null>])
[INFO]  Dependent entities: ([[com.bitrunk.apps.nussa.client.shared.Registration#<null>]])
[INFO]  Non-nullable association(s): ([com.bitrunk.apps.nussa.client.shared.Registration.institution])
[INFO] 04:34:26,046 ERROR [stderr] (http-localhost/127.0.0.1:8888-4) java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: Not-null property references a transient value - transient instance must be saved before current operation: 

Der Fehler wird Verursacht durch: org.hibernate.TransientPropertyValueException: not-null property references a transient Wert - transiente Instanz gespeichert werden muss, bevor der aktuelle Vorgang: Anmeldung.Träger -> Institution

Dies ist ziemlich seltsam, da bei der Registrierung wählt der Benutzer seine /Ihre institution bereits Einträge in der DB mit einem drop-down-widget, so dass Registrierung.institution sein soll, zeigt auf ein Objekt aus der DB, die macht mich Frage mich, was dieser Fehler bedeutet und wie man es beheben.

Bitte ich brauche eine Korrektur, wie gestern. Vielen Dank an alle.

Wenn Sie eine bi-direktionale Beziehung, durch die Zuordnung, dass die Registrierung der institution, die Sie geändert haben, die institution. So speichern Sie die Einrichtung vor dem speichern der Registrierung

InformationsquelleAutor Odili Charles Opute | 2014-08-01

Schreibe einen Kommentar