【问题标题】:query.getSingleResult() vs query.getResultList().get(0)query.getSingleResult() 与 query.getResultList().get(0)
【发布时间】:2015-06-25 12:14:50
【问题描述】:

鉴于我的原生 SQL 查询返回 单个非空 结果,有人可以帮我评估使用 query.getSingleResult() 与使用 query.getResultList .get(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();

【问题讨论】:

    标签: java mysql spring hibernate collections


    【解决方案1】:

    如果您使用 getById 等数据库方法,则可以使用 getSingleResult 方法。在这种情况下,您可以确定数据库中只有一个实体与该 ID 匹配。

    但是当您执行计数时,您应该使用 getSingleResult,因为它几乎肯定会返回结果,而不是使用 getResultList.get(0)。

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 2018-06-02
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 2023-03-17
      • 2012-06-13
      • 2014-06-23
      相关资源
      最近更新 更多