如何解决此问题 org.hibernate.NonUniqueResultException:查询未返回唯一结果:4

Posted

技术标签:

【中文标题】如何解决此问题 org.hibernate.NonUniqueResultException:查询未返回唯一结果:4【英文标题】:how to fix this issue org.hibernate.NonUniqueResultException: query did not return a unique result: 4 【发布时间】:2018-06-04 19:10:26 【问题描述】:

这是我在 Dao 中的代码 session = sessionFactory.openSession(); tx = session.beginTransaction(); Criteria criteria = session.createCriteria(Router.class); criteria.add(Restrictions.eq("router_id", router_id)); Router router = (Router) criteria.uniqueResult(); tx.commit(); session.close(); return router;

在 Hibernate 中变成这样 "org.hibernate.NonUniqueResultException: query did not return a unique result: 4"

提前致谢

【问题讨论】:

你可以像this这样更新时间戳,或者如果你已经有一个带有时间戳的字段,你需要修改你的查询。 org.hibernate.NonUniqueResultException: query did not return a unique result: 2?的可能重复 【参考方案1】:

根据官方休眠文档,

当应用程序调用 Query.uniqueResult() 并且查询返回多个结果时抛出。

在您的情况下,返回 4 个结果。确保您的查询只返回一个结果。

【讨论】:

是的,我得到了多个结果。但我只需要最后更新的结果。 我怎样才能得到最后更新的结果?提前致谢 使用 setMaxResults 得到 1 个结果。 @BMAM @BMAM 有多种方法可以获得最后更新的结果,例如在表中的最后更新时间获得第一个结果(假设你有一个,使用 HQL 或标准很容易做到)。您可以创建一个新线程来获得有关此问题的帮助。

以上是关于如何解决此问题 org.hibernate.NonUniqueResultException:查询未返回唯一结果:4的主要内容,如果未能解决你的问题,请参考以下文章

为啥颤振向我显示此错误,我该如何解决?

如何解决此分段错误:以下代码的 11 错误?

如何解决 iPhone 8 中的此图像剪切问题?

如何解决此回调包含问题?

创建项目时如何解决此错误?

如何在 Windows 10 中解决此问题?