Nicht machen, @ManyToOne Beziehung null-Werte zulässt

Habe ich eine viele-zu-eins-Beziehung zu sein möchte ich nullable:

@ManyToOne(optional = true)
@JoinColumn(name = "customer_id", nullable = true)
private Customer customer;

Leider, JPA hält die Einstellung der Spalte in meiner Datenbank als not NULL. Kann das jemand erklären? Gibt es eine Möglichkeit, damit es funktioniert? Beachten Sie, dass ich benutze JBoss 7, JPA 2.0 mit Hibernate als Persistenz-provider und eine PostgreSQL-9.1 Datenbank.

BEARBEITEN:

Fand ich die Ursache meines Problems. Scheinbar ist es aufgrund der Art, wie ich Sie definiert den Primärschlüssel in der referenzierten Entität Customer:

@Entity
@Table
public class Customer { 
    @Id
    @GeneratedValue
    @Column(columnDefinition="serial")
    private int id;
}

Scheint es, dass mit @Column(columnDefinition="serial") für den Primärschlüssel setzt automatisch der Fremdschlüssel, die sich auf es zu NOT NULL in der Datenbank. Ist das wirklich das erwartete Verhalten bei der Angabe der Spalte Typ als serial? Gibt es eine Abhilfe für die Aktivierung der null-Werte zulässt Fremdschlüssel in diesem Fall?

Vielen Dank im Voraus.

InformationsquelleAutor der Frage vcattin | 2013-03-19

Schreibe einen Kommentar