鉴于我的原生SQL查询返回单个非null 结果,有人可以帮我评估使用 query.getSingleResult() vs使用 query.getResultList获得(0)
仅举例:
String queryStr = "Select count(id) FROM Job J where companyMaster = 3";
Query query = getEntityManager().createNativeQuery(queryStr);
return ((BigInteger) query.getResultList().get(0)).intValue();
产生的结果与:
相同String queryStr = "Select count(id) FROM Job Jo where companyMaster = 3";
Query query = getEntityManager().createNativeQuery(queryStr);
return ((BigInteger) query.getSingleResult()).intValue();
答案 0 :(得分:0)
如果您使用像getById这样的数据库方法,那么可以使用getSingleResult方法。在这种情况下,您确定数据库中只有一个实体与该ID匹配。
但是当您执行计数时,您应该使用getSingleResult,因为它几乎肯定会返回结果而不是使用getResultList.get(0)。