1

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)されますが、これは私の知る限り、正しい動作ではありません。

これは既知のバグですか、それともここで何か間違ったことをしていますか? どんなヒントでも役に立ちます

4

0 に答える 0