休眠将NULL插入原始类型字段

时间:2019-05-16 18:39:47

标签: java mysql hibernate

我有一个带有少数字段的对象,其中有些字段不可为空。对于非空数字类型,我使用long。例如,

@Entity
@Table(name="my_table")
public class MyClass {
  @Column(name="reference_id", nullable=false)
  private long referenceId;
}

此对象的getter和setter都仅接受long,而不接受Long。但是,大约1%的时间,当尝试将referenceId字段设置为某个非零值的对象持久化时,Hibernate将从MySQL返回错误消息:

Column 'reference_id' cannot be null

当字段类型为long或设置了值时,我无法理解这种情况。此外,再次尝试创建完全相同的对象将成功。

我在这里做错了什么?我需要更改一些休眠设置或MySQL设置吗?

1 个答案:

答案 0 :(得分:0)

经过反复的反复,我能够确定MySQL实例实际上存在与负载相关的错误。切换数据库硬件似乎可以缓解问题。