我有一个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
我可以设置一些设置以保持解决方法吗?
答案 0 :(得分:0)
如评论中所述,问题在于使用原语。基元只能将默认值设置为“某个值”。在int的情况下,这是一个0(long将为0,boolean将为false,依此类推)。
为了将数据库列表示为null,相关实体应使用Integer对象。这允许设置null,并且还可以分配值。
对实体来说应该是一个很容易的改变 - 使定义整数id; (如果id中可以使用大值,则为Long)并更新访问者。