【问题标题】:Jpa getSingleResult() behoviour if no entity is there sometimes it's shows exception and sometime it's shows error如果没有实体存在,Jpa getSingleResult() 行为有时会显示异常,有时会显示错误
【发布时间】:2018-07-03 02:40:30
【问题描述】:

我浏览了我发现 NoResultException 的文档 - 如果没有结果,但是当我执行查询时它显示为 null;

由于单个结果返回类型是 Object,我们需要将结果类型转换为 Object 类,如果我们将 null 与 Object 进行类型转换,则不会出现异常。

谁能说明一下,什么时候会给出 NoResultException ?

【问题讨论】:

  • 你能添加代码吗?
  • 你必须提供一个minimal reproducible example 来证明这种行为。这是非常基本的功能,因此发生这种情况将是一个巨大的错误(可能在 EclipseLink 中)。
  • @kayaman 证明我添加了图片
  • @GarimaGupta 代码也可以在图片中找到
  • 你能用 BigInteger 代替 Long 吗?

标签: java hibernate jpa eclipselink toplink


【解决方案1】:

缺少结果(无行)和NULL 之间存在差异。您得到的是单个 NULL 结果,因此不应抛出异常。

如果没有要计算聚合的行,聚合函数将返回 NULL,这使得这有点令人费解。查询本身 (FROM IptReceiveOrder...) 返回 0 行,但 MAX(model.id) 将其更改为单个 NULL 行。

【讨论】:

  • 谢谢,我测试了你说的100%准确。
猜你喜欢
  • 2020-01-30
  • 1970-01-01
  • 2014-08-04
  • 2019-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多