2014-09-08 11 views
6

Başka bir tablonun yabancı anahtarına sahip bir tablom var (bire bir ilişki) ama bunun null olmasını istiyorum. Böyle@ManyToOne ilişkisi boş olabilir mi?

şey:

public class SubType() { 

    @Id 
    @GeneratedValue(generator = "system-uuid") 
    @GenericGenerator(name = "system-uuid", strategy = "uuid") 
    private String id; 

} 

public class TopUp { 

    @Column(nullable = true) 
    @ManyToOne(optional = false, fetch = FetchType.LAZY) 
    private SubType subType; 

} 

Ama @Column(nullable = true)NullPointerException atar ve alt tip boş olamaz diyor. ManyToOne'ı kabul etmenin bir yolu var mı?

cevap

15

Sen ayarlamak gerekir:

@ManyToOne(optional = true, fetch = FetchType.LAZY) 

değil optional=false.

@Column(nullable=true), DDL nesnesine bir NULL SQL sütun türü eklemesi talimatını vermektir.

İsteğe bağlı olarak nullable seçeneği hakkında daha fazla bilgi için this SO answer.

+0

Teşekkür! İşe yarıyor! Kendimi neden anlamıyorum diye deliriyorum! – Narges

3

bu deneyin:

@JoinColumn(name = "subType_id", nullable = true)