A には 2 つのエンティティがあります: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と、ペアごとに 1 つ取得(Report -> ReportSection)されますが、これは私の知る限り、正しい動作ではありません。
これは既知のバグですか、それともここで何か間違ったことをしていますか? どんなヒントでも役に立ちます