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)
されますが、これは私の知る限り、正しい動作ではありません。
これは既知のバグですか、それともここで何か間違ったことをしていますか? どんなヒントでも役に立ちます