当我有一个javax.persistence.Query,我期待List
我总是检查以确保List
的大小大于1,然后返回任何值。
e.g。
Query q = em.createQuery(sql);
if(q.getResultList().size()<1)
{
return new ArrayList();
}
else
{
return q.getResultList();
}
我想知道当我检查大小时以及当我执行两次查询时返回结果时。
答案 0 :(得分:3)
getResultList()
执行查询,就像docs所说的那样。
请改为:
List results = q.getResultList();
if (results.size() == 0) {
return Collections.emptyList();
} else {
return results;
}
当然,如果这是TypedQuery
,您应该添加泛型部分。优良作法是从没有结果记录的查询中返回不可修改的空列表。
答案 1 :(得分:0)
如果q.getResultList();
是实际查询,那么是。
在比较之前,我会将其存储在变量List storeHere = q.getResultList();
然后比较该变量而不是命令。