@ManyToOne JPA关系可以为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?
你需要设置:
@ManyToOne(optional = true, fetch = FetchType.LAZY)
不optional=false
。
@Column(nullable=true)
用于指示DDL生成包含NULL SQL列类型。
有关可选vs可空的更多信息,请查看此SO答案 。
试试这个:
@JoinColumn(name = "subType_id", nullable = true)