1つのクエリで3つのテーブルからデータを取得しようとしています。「仕事の経験」、「スキル」、「説明」があります。アイデアは、1つのWorkexperienceに、それに関連する複数のスキルと複数の説明があるということです。1つの特定の雇用者からすべてのWorkexperiencesを照会しようとしています(Workexperienceテーブルには「EmployerId」列があります)。
説明を取得することから始めました。これは機能します。
select distinct w from Workexperience w
left join fetch w.skills
where w.employer=(select e from Employer e where e.username = :username)
これにより、これまでのところ、すべてのWorkexperiencesとそのスキルが得られます。説明を追加しようとすると、うまくいきません。
select distinct w from Workexperience as w
left join fetch w.skills
left join fetch w.descriptions
where w.employer=(select e from Employer e where e.username = :username)
これは私に古典的なlazyinitializationexceptionを与えます。
だから私の質問は:1つのクエリで複数の「左結合フェッチ」ステートメントを使用できますか?もしそうなら、どのようにこれを行いますか?
前もって感謝します!