Java @ManyToOne JPA关系是否可以为空?
我有一个表,它具有另一个表(多对一关系)的外键,但我希望它可以为null 大概是这样的:Java @ManyToOne JPA关系是否可以为空?,java,hibernate,jpa,hibernate-mapping,many-to-one,Java,Hibernate,Jpa,Hibernate Mapping,Many To One,我有一个表,它具有另一个表(多对一关系)的外键,但我希望它可以为null 大概是这样的: public class SubType() { @Id @GeneratedValue(generator = "system-uuid") @GenericGenerator(name = "system-uuid", strategy = "uuid") private String id; } public class TopUp { @Column(
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。
有没有办法让ManyTone accept为空?您需要设置:
@ManyToOne(optional = true, fetch = FetchType.LAZY)
not可选=false
@列(nullable=true)
用于指示DDL生成工具包含NULL
SQL列类型约束
有关可选
与可空
的更多信息,请查看。尝试以下方法:
@JoinColumn(name = "subType_id", nullable = true)
只有这对我有帮助:
public class TopUp {
@ManyToOne
@JoinColumn(columnDefinition="integer", name="subtype_id")
private SubType subType;
}
columnDefinition是一个解决方案