2017-08-08 103 views
1

JPA正在返回带有填充id的实体,所有其他字段都为空(由调试器验证)。它通过使用JPA查询在另一列上搜索实体来获取实体,这导致实体的ID为13(这是正确的),但其余的字段在db中填充并定义为非空,为什么会发生这种情况的任何想法都会很棒。JPA正在返回我的实体,只有填充的id,所有其他字段为空

[我有一堆的上市代码,但因为它没有答案(以及更准确的问题)有助于我删除它。]

+0

我不确定这个问题应该关闭,这是相当罕见的,有很多重复的“org.hibernate.PropertyAccessException:空值被分配给原始类型setter的属性”,但是分配包装类型不会解决这个问题。还有一些人坚持原始类型应该是有效的,在这种情况下,它们是,意味着其他人可能已经看到了这一点,但没有找到解决办法。除非有人能找到这种情况的重复。 – Quaternion

回答

0

最初我得到的“org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of”,然而这个问题的错误是该实体将空值分配给所有字段,但id(这肯定不是空的,并且通过约束不能)。

问题是我编辑了数据库模式以使时间戳字段不为空,但MariaDB(MySQL)已将'0000-00-00 00:00:00'赋予该列。出于某种原因没有产生错误或警告,它只是愉快地返回一个只有id(主键)集的实体!

我只发现我的错误,当我试图坚持,它告诉我,我必须坚持现在所需的时间戳字段,更新用于保存实体的方法后,我审​​查了数据库的内容,发现错误(包含'0000-00-00 00:00:00'的列)。

相关问题