休眠 – 将’0′,“ – 1”视为空

我正在使用一个大型的旧数据库,现在我尝试使用hibernate而不是SQL来访问它.

其中一个较大的问题是在没有约束的情况下在foreignKeys中使用“0”和“-1”(意思是“NULL”).

我生成了很多代码,但我手动添加了连接.像这样

@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(nullable = true, name = "fkActivityId")
public List<Activity> getActivities() {
    return activities;
}

问题是,只要我有一个fkActivityId =“ – 1”或“0”意味着NULL的对象,就会有一个异常抱怨无法找到这样的对象.

有没有办法让Hibernate表现得好像是NULL?

最佳答案 如果值为-1或0,则浏览数据库并将每个fkActivityId更新为null.这就是null的用途. Hibernate正确地完成了它的工作;它是未正确设置的数据库.

点赞