我在 jpa ( hibernate实现)中有一个命名查询,其结果将映射到自定义pojo列表(myresult.java
) 。在一种情况下,查询不返回任何值,我希望返回一个空列表。相反,我得到一个列表,其中包含一个类型为“myresult
”的对象,所有成员都初始化为null。
我不明白为什么会这样......任何帮助都非常感谢..
提前谢谢。
答案 0 :(得分:0)
我认为您的问题的原因在此链接中有解释
Can javax.persistence.Query.getResultList() return null?
在JPA中返回空,返回null,然后在你的情况下将null添加到列表中返回,我使用spring-data并返回一个空列表,我不知道为什么hibernate决定使用这种方法返回的地方是一个空列表
答案 1 :(得分:0)
经过相当多的试验后,我发现Jpa hibernate实现了如果只从命名查询中返回聚合值,那么在“无数据”的情况下,不返回空列表的pojos。而是返回具有单个对象的列表,该对象具有为属性设置的适当默认值(对于sum为null,对于count等为0)。但是,如果仅选择列值或列值以及聚合,则将返回空列表。