2014-09-08 2 views
6

다른 테이블의 외래 키 (다 대 일 관계)가있는 테이블을 가지고 있지만이 테이블을 Nullable로하고 싶습니다. 이 같은@ManyToOne 관계는 null 일 수 있습니까?

뭔가 :

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; 

} 

그러나 @Column(nullable = true)NullPointerException을 던져 하위 유형은 null 일 수 없습니다 말했다. ManyToOne이 null을 허용하는 방법이 있습니까?

답변

15

당신은 설정해야합니다

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

하지 optional=false.

@Column(nullable=true)은 DDL 생성에 NULL SQL 열 유형을 포함하도록 지시하는 것입니다.

선택적 vs null 허용 체크에 대한 자세한 내용은 this SO answer입니다.

+0

감사합니다! 그것은 작동합니다! 나는 내가 왜 그것을 나 자신에게주지 않는지에 관해 미쳤다고 느낀다! – Narges

3

이 시도 :

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