I have a table that has foreign key of another table (many to one relationship) but i want it to be nullable.
Something like this:
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;
}
But @Column(nullable = true)
throws the NullPointerException
and says subtype can not be null.
Is there any way to get the ManyToOne accept null?
You need to set:
@ManyToOne(optional = true, fetch = FetchType.LAZY)
not optional=false
.
The @Column(nullable=true)
is to instruct the DDL generation tool to include a NULL
SQL column type constraint.
For more on optional
vs nullable
, check out this StackOverflow answer.