【发布时间】: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