Ich habe eine viele-zu-eins-Beziehung, die ich sein will nullable machen. Kann das jemand erklären? Gibt es eine Möglichkeit, es zum Laufen zu bringen? Beachten Sie, dass ich JBoss 7, JPA 2.0 mit Hibernate als Persistenzanbieter und eine PostgreSQL 9.1-Datenbank verwende.Kann nicht @ManyToOne Beziehung nullable
EDIT:
fand ich die Ursache für mein Problem. Anscheinend ist es aufgrund der Art, wie ich den Primärschlüssel in der referenzierten Einheit definiert Customer
:
@Entity
@Table
public class Customer {
@Id
@GeneratedValue
@Column(columnDefinition="serial")
private int id;
}
Es scheint, dass @Column(columnDefinition="serial")
für den Primärschlüssel automatisch den Fremdschlüssel setzt es auf NOT NULL
in der Datenbank verweist. Ist das wirklich das erwartete Verhalten bei der Angabe des Spaltentyps als serial
? Gibt es eine Problemumgehung für das Aktivieren von Nullable-Fremdschlüsseln in diesem Fall?
Vielen Dank im Voraus.
erklärt sich gezeigt, dass in der Tat ist eine Lösung, die ich in Betracht gezogen haben. Leider ermöglicht dies nicht die ID-Generierung von der Datenbank selbst, und es ist eine Funktionalität, die ich brauche, wenn ich Daten manuell einfüge (zum Beispiel mit import.sql von hibernate). Zum Glück denke ich, ich bin dabei, eine Lösung zu finden. Ich mache nur ein paar Tests und wenn es erfolgreich ist, werde ich die Lösung veröffentlichen. Danke für Ihre Hilfe. – vcattin