【问题标题】:Best way to handle when you are expecting 0 or 1 results from JPA query [duplicate]当您期望 JPA 查询得到 0 或 1 个结果时的最佳处理方式 [重复]
【发布时间】:2018-07-03 10:33:27
【问题描述】:

我有一个实体,它要么为空,要么只有一个结果。目前我正在这样处理:

    Entity entity = null;
    try {
        entity = query.getSingleResult();
    } catch (NoResultException ignore) {
        return null;
    }
    return entity;

但这是做到这一点的“最佳”方式吗?我不喜欢忽略异常,但同样不喜欢我能想到的唯一替代方案:

    List<Entity> entities = null;
    entities = query.getResultList();
    if (entities.size() > 0) {
        return entities.get(0);
    }
    return null;

【问题讨论】:

  • 尝试使用Optional ?
  • @daniu - 那篇文章有点狭隘和假设性。我有一个复杂的查询,它会产生一个或空的结果。由于其他原因(谓词的代码重用),我不使用 NamedQuery,所以这实际上是一个真正的困境。

标签: java jpa criteria-api


【解决方案1】:

您可以在此处找到有关此主题的讨论: JPA getSingleResult() or null

似乎没有更好的选择。

【讨论】:

  • 谢谢 - 看起来这应该作为副本关闭......诅咒我无法找到类似的问题;)
猜你喜欢
  • 2019-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
  • 2014-03-13
相关资源
最近更新 更多