Impossible de rendre la relation @ManyToOne nullable

J'ai une many-to-one relation que je veux être nullable:

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

Malheureusement, JPA conserve le réglage de la colonne dans ma base de données comme not NULL. Quelqu'un peut-il expliquer cela? Est-il un moyen de le faire fonctionner? Notez que j'utilise JBoss 7, JPA 2.0 avec mise en veille prolongée en tant que fournisseur de persistance et d'une base de données PostgreSQL 9.1.

MODIFIER:

J'ai trouvé la cause de mon problème. Apparemment, c'est dû à la façon dont je définis la clé primaire de l'entité référencée Customer:

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

Il semble que l'utilisation de @Column(columnDefinition="serial") pour la clé primaire définit automatiquement la clé étrangère faisant référence à NOT NULL dans la base de données. Est-ce vraiment le comportement attendu lors de la spécification du type de colonne comme serial? Est-il une solution pour permettre nullable clés étrangères dans ce cas?

Vous en remercie d'avance.

source d'informationauteur vcattin