【发布时间】:2017-08-11 19:43:59
【问题描述】:
@Override
public Application getApplicationForId(Long applicationId) {
List<Application> applications = executeNamedQuery("applicationById", Application.class, applicationId);
return applications.isEmpty() ? null : applications.get(0);
}
在 eclipse 中调试时
返回 applications.isEmpty() ? null : applications.get(0);
这些表达式被评估为
applications.isEmpty() -> false
applications.get(0) -> (id=171)
applications.size() -> 1
但在执行此行之后,它的抛出错误
org.hibernate.HibernateException:找到了多行具有给定标识符的行:263536,
即使它的大小显示为 1,然后仍然是为什么以及如何在执行后获得多行。
【问题讨论】:
-
请添加你的休眠实体类,这个问题通常发生在你急切地获取对象时。
-
命名查询
applicationById也会有帮助。 -
提供@GherbiHicham
-
提供@Andreas
-
请输入整个实体类,我们需要查看您对其余属性使用的注释,而不仅仅是id
标签: java hibernate jakarta-ee