【发布时间】:2014-07-15 00:37:04
【问题描述】:
我的 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。那么问题是什么?
【问题讨论】:
-
问题是你要求一个uniqueResult,这意味着可能只有一行返回,但查询找到了多个结果。
-
但 count(*) 将始终只返回 1 行
-
我刚刚告诉过你是什么触发了 NonUniqueResultException。我同意计数这很奇怪,但仍然如此。你试过没有 UniqueResult 约束吗?
-
什么是客户数据?抽象类?
-
@user3198603 你解决了这个问题吗?你找到问题的原因了吗?
标签: java hibernate hql jpql dao