【问题标题】:How to use Hibernate with Annotation for Null Float Field如何将 Hibernate 与 Null 浮点字段的注释一起使用
【发布时间】:2015-10-27 18:02:19
【问题描述】:

今天早上我一直在与这个问题作斗争,但没有找到任何好的 google 或堆栈溢出线索。

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

从文件读取时,如果我收到一个空字符串,那么我将相应的“Float”字段设置为空。

对于不将此字段设置为 null 的插入,插入工作正常并且记录被插入到数据库中。但是,当此字段为空时,我会得到一个 NPE。我在调用之前检查了管理类是否不为空,而事实并非如此。我还在用于插入的方法的第一行放置了一个断点,并尝试在调试模式下单步执行,但我无法再进一步了。基于此,我相信幕后有一些事情导致了 NPE。

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

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

我的问题很简单,你如何让休眠状态允许将浮点值的“null”保存到数据库中?

【问题讨论】:

    标签: java mysql hibernate persistence


    【解决方案1】:

    找到了问题...这很糟糕...但是我会在这里发一个帖子,以防其他人遇到与我相同的挫败感。

    我是 hibernate 新手,所以在开发时我从 float 开始,然后当我看到底层数据库可以接受空值时将其迁移到 Float。可悲的是,在 insert 方法中,它的签名是 float 而不是 Float,这意味着当我传递 null 时它会爆炸,这很有意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      相关资源
      最近更新 更多