Java 如何将Hibernate与空浮点字段的注释一起使用

Java 如何将Hibernate与空浮点字段的注释一起使用,java,mysql,hibernate,persistence,Java,Mysql,Hibernate,Persistence,今天早上,我已经和这个问题斗争了一段时间,但没有发现任何关于谷歌或堆栈溢出的好线索 我正在使用hibernate和注释来帮助将数据保存到mysql数据库。mysql表允许将float字段设置为null,文件的输入可以是空字符串,这意味着应该将null保存到数据库中 读取文件时,如果收到空字符串,则将相应的“Float”字段设置为null 对于没有将此字段设置为null的插入,插入操作正常,记录被插入到数据库中。然而,当这个字段为空时,我得到一个NPE。我在调用之前进行了检查,以检查管理类是否为n

今天早上,我已经和这个问题斗争了一段时间,但没有发现任何关于谷歌或堆栈溢出的好线索

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

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

对于没有将此字段设置为null的插入,插入操作正常,记录被插入到数据库中。然而,当这个字段为空时,我得到一个NPE。我在调用之前进行了检查,以检查管理类是否为null,它是否为null。在调试模式下,我还在用于插入和尝试介入的方法的第一行中放置了一个断点,我无法获得进一步的结果。基于此,我相信有一些幕后因素导致了NPE

从阅读中,我试图使用
nullable
注释,但它看起来像是用于模式生成的
nullable

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

我的问题很直截了当,如何让hibernate允许将浮点值保存到db中的“null”?

找到了问题。。。这很糟糕。。。但我会在这里贴一个帖子,希望其他人也能像我一样经历同样的挫折

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