org.hibernate.NonUniqueResultException:查询未返回唯一结果:2?

新手上路,请多包涵

我的 DAO 中有以下代码:

 String sql = "SELECT COUNT(*) FROM CustomerData " +
             "WHERE custId = :custId AND deptId = :deptId";
Query query = session.createQuery(sql);
query.setParameter("custId", custId);
query.setParameter("deptId", deptId);
long count = (long) query.uniqueResult(); // ERROR THROWN HERE

Hibernate 在标记行抛出以下异常:

org.hibernate.NonUniqueResultException:查询未返回唯一结果:

我不确定发生了什么,因为 count(*) 总是只返回一行。

此外,当我直接在 db 上运行此查询时,它返回结果为 1。那么问题是什么?

原文由 user3198603 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 749
1 个回答

您的查询似乎返回了多个结果,请检查数据库。在 query.uniqueResult() 的文档中,您可以阅读:

抛出:org.hibernate.NonUniqueResultException - 如果有多个匹配结果

如果你想避免这个错误并仍然使用唯一的结果请求,你可以使用这种解决方法 query.setMaxResults(1).uniqueResult();

原文由 GROX13 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题