我的 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 许可协议
您的查询似乎返回了多个结果,请检查数据库。在
query.uniqueResult()
的文档中,您可以阅读:如果你想避免这个错误并仍然使用唯一的结果请求,你可以使用这种解决方法
query.setMaxResults(1).uniqueResult();