我在我的dao中使用getResultList ( List javax.persistence.Query.getResultList() )
来获取对象列表。知道为什么它可能会返回{null,null,null,null,null,null,null,null,null,null}
以查找在db中没有匹配的查询。这导致我的代码列表。 hasNext()
打破哪个工作正常。我暂时没有参与这个项目(如果重要的话)。它正在使用
冬眠核-4.1.9.Final-sources.jar
我看到了this并且知道它现在正在返回列表。
答案 0 :(得分:1)
猜测:您在调试器中检查了列表,但未查看size
属性?在许多情况下,Hibernate会返回ArrayList
而没有明确的capacity
。然后ArrayList
使用10个null
元素初始化其内部数组(以避免在添加元素时反复创建数组)。但是如果你问list.iterator().hasNext()
它应该返回false
(以及list.isEmpty()
返回true
而list.size()
会返回0
。)
答案 1 :(得分:0)
只需在结果列表中添加isEmpty
检查:
List<SomeType> resultList = query.getResultList();
if (resultList.isEmpty()){
//Handle it
}
结果列表总是包含一些空值,我使用isEmpty检查以防止以后出错。
答案 2 :(得分:-1)
您可以通过检查List.hasNext()中的null元素来阻止这种情况。
if(variable = list.next() !=null)
// do something
答案 3 :(得分:-1)