如何设置外键为空

时间:2018-09-11 12:57:24

标签: java spring hibernate foreign-keys nullable

我有一个类似以下的类配置(只是一个示例,并非实际含义)-

public class payment
{
    @Id
    @Column("payment_id")
    private int paymentId;

    @ManyToOne
    @JoinColumn(name ="")
    private Fine fine;
    //getter setter and other stuff
}

public class Fine{
    @Id
    @Column("fine_id")
    private int fineId;

    @Column("amount")
    private int fineAmount;

    //other stuff
} 

我收到org.hibernate.ObjectNotFoundException: No row with the given identifier exists错误消息。根据{{​​3}},这是因为外键不能具有null的值,但是我的数据库包含null。我无法更改数据库或项目结构,因此有什么办法可以使我合法地向我的外键发出null值,即不创建异常。

1 个答案:

答案 0 :(得分:0)

使用@Column(nulable = true)

用于创建DDL脚本,未带来所需的行为。

您需要将@ManyToOne标记为可选。

@ManyToOne(optional = true)