Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为JPQL中基元类型setter的属性分配了获取错误Null值_Java_Hibernate_Jpa_Jpql - Fatal编程技术网

Java 为JPQL中基元类型setter的属性分配了获取错误Null值

Java 为JPQL中基元类型setter的属性分配了获取错误Null值,java,hibernate,jpa,jpql,Java,Hibernate,Jpa,Jpql,在我的数据库中,我有一些列包含null值,并且我从表中生成了类,因此包含integer数据类型的列有int属性。现在的问题是,如果我查询数据库以获取数据,那么对于具有Null值的列,我会得到这个错误“Null值被分配给primitive type setter的属性”。 我也读过很多关于将int转换成整数的解决方案,但我不能这样做。有许多int列也有同样的问题,如果我必须再次通过JPA从表中生成实体类,JPA将再次生成int属性。 我在查询时询问一个解决方案,该解决方案检查如果属性值为null,

在我的数据库中,我有一些列包含null值,并且我从表中生成了类,因此包含integer数据类型的列有int属性。现在的问题是,如果我查询数据库以获取数据,那么对于具有Null值的列,我会得到这个错误“Null值被分配给primitive type setter的属性”。 我也读过很多关于将int转换成整数的解决方案,但我不能这样做。有许多int列也有同样的问题,如果我必须再次通过JPA从表中生成实体类,JPA将再次生成int属性。 我在查询时询问一个解决方案,该解决方案检查如果属性值为null,例如person.salary为null,则我将0存储在person.salary中。 我现在的问题是这样的

"Select per From Person per where id=1"
它是一种Java持久性查询语言,而不是本机sql查询。
我们将非常感谢您的帮助。我也不能将查询更改为本机sql查询。两天以来我一直在讨论这个问题

您对某些属性使用int、double或long而不是Integer、double、long吗?@XtremeBaumer基本上我是使用JPA从表中创建实体类的,所以JPA在实体类中为数据类型为int的列创建int属性,我无法将int转换为整数,因为有许多属性,并且数据库模式可以更改,我必须再次为其生成实体类,JPA将再次生成int。如果您的字段看起来像
int salary
,则出现该错误是正常的。毕竟,如果数据库包含
NULL
,您认为实体中
salary
的值应该是多少?Hibernate不知道,因此抱怨。因此,要么将其更改为
整数薪资
,要么删除
空值
值。@托马斯我不能同时执行这两项操作,我必须在查询中执行一些操作,例如如果p.salary为空,则进行更改,然后将p.salary设置为0。您必须执行其中一项操作。只需一个查询,就可以将所有空值更改为0或其他任何值