我有一个表,有另一个表(多对一关系)的外键,但我希望它是空的。
大概是这样的:
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
,并说subtype不能为null。有没有办法让ManyToOne接受null?
3条答案
按热度按时间vwhgwdsa1#
默认情况下,
@ManyToOne
关联是可选的,因此如果您希望它们可以为空,则不需要设置任何内容。但是,由于您设置了
optional=false
属性,因此将其设为强制属性。因此,而不是:
像这样设置:
默认情况下,
optional
是true
。另一方面,
@Column(nullable=true)
用于指示SQL生成工具包含NULL
SQL列类型约束。m1m5dgzv2#
试试这个:
mwecs4sa3#
只有这个帮助了我:
columnDefinition是一个解决方案!