@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)