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.
InformationsquelleAutor Odili Charles Opute | 2014-08-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre aktuellen Zuordnungen nicht Inhaber der Registrierung/Einrichtung Verband.
Wenn Sie möchten, dass die Anmeldung zum Steuern des Vereins (am häufigsten), dann ist dies Ihre Zuordnung:
Wenn Sie möchten, dass die Einrichtung zum Steuern des Vereins (nicht so Häufig) dann ist dein mapping wird:
Können Sie nicht beide (
updatable=false
,insertable=false
) undmappedBy
weil Sie dann weder von diesem Verein endet Steuerung des Vereins, erzählt Hibernate, die Seite zu untersuchen, die bei der Synchronisation der Objekt-Status mit der Datenbank.InformationsquelleAutor Vlad Mihalcea
Überprüfen Sie die
Institution
Instanzen innerhalb des drop-down-widget: Sie können Kopien der angeforderten Instanzen.InformationsquelleAutor Thiago Kronig