Nie można unieważnić relacji @ManyToOne

Mam relację „wiele do jednego”, którą chcę unieważnić:

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

Niestety JPA wciąż ustawia kolumnę w mojej bazie danych jako NIE NULL. Czy ktoś może to wyjaśnić? Czy istnieje sposób, aby to działało? Zauważ, że używam JBoss 7, JPA 2.0 z Hibernate jako dostawcy trwałości i bazy danych PostgreSQL 9.1.

EDYTOWAĆ:

Znalazłem przyczynę mojego problemu. Najwyraźniej wynika to ze sposobu, w jaki zdefiniowałem klucz podstawowy w obiekcie, do którego istnieje odwołanieCustomer:

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

Wydaje się, że używa@Column(columnDefinition="serial") klucz podstawowy automatycznie ustawia klucze obce, do których się odwołujeNOT NULL w bazie danych. Czy tak naprawdę jest to oczekiwane zachowanie przy określaniu typu kolumny jakoserial? Czy w tym przypadku istnieje obejście umożliwiające włączanie dopuszczalnych kluczy obcych?

Z góry dziękuję.

questionAnswers(4)

yourAnswerToTheQuestion