Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 eclipselink和jpa:选择具有左连接返回的id关联;0“;而是空的_Java_Jpa_Jpa 2.0_Eclipselink - Fatal编程技术网

Java eclipselink和jpa:选择具有左连接返回的id关联;0“;而是空的

Java eclipselink和jpa:选择具有左连接返回的id关联;0“;而是空的,java,jpa,jpa-2.0,eclipselink,Java,Jpa,Jpa 2.0,Eclipselink,我有一个JPA选择: select c.name, f.id from Child c left join c.father 预期结果是: Child 1 | 1 Child 2 | 2 Orphan | null 但是我抓住了 Child 1 | 1 Child 2 | 2 Orphan | 0 // ZERO ? 我能够解决这个问题 select c.name, case when (f.id is null) then null else f.id end

我有一个JPA选择:

select c.name, f.id from Child c left join c.father
预期结果是:

Child 1  |  1
Child 2  |  2
Orphan   | null
但是我抓住了

Child 1  |  1
Child 2  |  2
Orphan   |  0  // ZERO ?
我能够解决这个问题

select c.name, case when (f.id is null) then null else f.id end from Child c left join c.father

有一些设置我可以设置为远离解决方法?

如评论中所述,问题在于原语的使用。原语只能存储默认设置为“some value”的值。对于int,这是一个0(long为0,boolean为false,依此类推)

为了表示数据库列为null,相关实体应使用整数对象。这允许设置null,也可以指定值


它应该是一个足够简单的实体更改-使定义为整数id;(如果可以在id中使用大值,则为Long)并更新访问器。

什么是
f.id
?类型为“int”,但是,使用“case”我可以验证实际值(null),尝试使用整数而不是允许null的int。