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),据我所知,这是不正确的行为。
这是一个已知的错误还是我在这里做错了什么?任何提示都会有所帮助