A 有两个实体:Report
并ReportSection
受OneToMany
关系约束。通常,每份报告包含多个部分。
我使用OpenJPA 2.2.1
并且最近在尝试获取特定内容时也开始遇到错误,Report
同时也急切地加载部分。
em.createNamedQuery("REPORT.findSingleWithSections").setParameter("id", id).getSingleResult();
哪里REPORT.findSingleWithSections
是:
SELECT r FROM Report r LEFT JOIN r.sections s WHERE r.id = :id;
我的期望:Report
要获取的单个对象和所有部分。
我得到什么: NoUniqueResultException
异常
我确定查询是通过主键完成的,因此数据库中不可能实际存在双重记录。
如果我改为getSingleResult
每对getResultList
都会得到一个(Report -> ReportSection)
,据我所知,这是不正确的行为。
这是一个已知的错误还是我在这里做错了什么?任何提示都会有所帮助