【问题标题】:NonUniqueResultException thrown when using spring jpa "findtop"使用 spring jpa“findtop”时抛出 NonUniqueResultException
【发布时间】:2016-07-07 10:42:03
【问题描述】:

我正在使用 Spring JPA,当我使用“findTop”关键字时会抛出 NonUniqueResultException

Java 源代码:

Optional<ClassA> findTopByXXXOrderByIdDesc(String xxx);

然后得到异常:

exceptionType = org.springframework.dao.IncorrectResultSizeDataAccessException 异常 = 结果返回多个元素;嵌套异常是 javax.persistence.NonUniqueResultException: 结果返回多个元素

有人知道发生了什么吗?

【问题讨论】:

  • 如果我错了请纠正我:根据我的理解,即使会返回多个结果,但是,因为我使用了“findTop”,所以 Spring JPA 将帮助我选择最上面的一个结果
  • 问题已解决,因为版本至少应该是 1.7.1.RELEASE

标签: java spring jpa spring-data-jpa


【解决方案1】:

能否请您检查一下您的 Spring Data JPA 的版本。请注意,Top 和 First 自 1.7.1.RELEASE 起可用。

【讨论】:

    【解决方案2】:

    您尝试将结果检索为“query.getSingleResult()”,希望您只会得到一个结果。而您的查询返回了多个结果。这就是发生此异常的原因。

    【讨论】:

    • 如果我错了请纠正我:根据我的理解,即使会返回多个结果,但是,因为我使用了“findTop”,所以 Spring JPA 将帮助我选择最上面的一个结果
    猜你喜欢
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 2014-11-03
    • 2016-10-28
    • 2021-08-31
    • 1970-01-01
    相关资源
    最近更新 更多