如何在Null Float字段中使用带有Annotation的Hibernate

时间:2015-10-27 18:02:20

标签: java mysql hibernate persistence

今天早上我一直在和这个人争吵,并没有找到任何有利于google或堆栈溢出的良好线索。

我正在使用带有注释的hibernate来帮助将数据保存到mysql数据库。 mysql表允许将float字段设置为null,并且从文件输入可以是空字符串,这意味着应该将null保存到db。

从文件中读取时,如果收到空字符串,则将相应的“Float”字段设置为null。

对于没有此字段为null的插入,插入工作正常,并且记录将插入到db中。但是当这个字段为空时,我得到一个NPE。我在调用之前检查以检查管理类是否为空,而不是。我还在用于插入的方法的第一行中设置了一个断点,并在调试模式下尝试介入,我无法继续。基于此,我相信现场背后的事情正在引起NPE。

从阅读Persistence @Column nullable = false can insert null开始,我尝试使用nullable注释,但看起来nullable用于模式生成。

@Column(name = "SomeFloatField", nullable = true)

我的问题很简单,你如何让hibernate允许浮点值的“null”保存到db?

1 个答案:

答案 0 :(得分:0)

发现问题......这是非常糟糕的......但是我会在这里张贴一个帖子,其他任何人都会遇到同样的挫折感。

我是hibernate的新手,所以当我开发时,我开始使用float,然后当我看到底层数据库可以接受空值时,将其迁移到Float。遗憾的是,在插入方法中,它的签名有float而不是Float,这意味着当我传递它被炸毁的空时,这非常有意义。