Невозможно сделать отношения @ManyToOne обнуляемыми

У меня есть отношения многие-к-одному, которые я хочу обнулять:

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

К сожалению, JPA продолжает устанавливать столбец в моей базе данных как NOT NULL. Кто-нибудь может объяснить это? Есть ли способ заставить его работать? Обратите внимание, что я использую JBoss 7, JPA 2.0 с Hibernate в качестве поставщика сохраняемости и базу данных PostgreSQL 9.1.

РЕДАКТИРОВАТЬ:

Я нашел причину своей проблемы. По-видимому, это связано с тем, как я определил первичный ключ в ссылочной сущностиCustomer:

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

Кажется, что с помощью@Column(columnDefinition="serial") для первичного ключа автоматически устанавливает внешние ключи, ссылающиеся на негоNOT NULL в базе данных. Это действительно ожидаемое поведение при указании типа столбца какserial? Есть ли обходной путь для включения внешних ключей, которые могут иметь значение NULL, в этом случае?

Заранее спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос