次のドメイン モデルがあります。
class Department {
Contact primaryContact
Company company
}
JPQLクエリを実行しているとき
from Department e
left join e.primaryContact
where (e.company.id=?) order by e.name asc
次のSQLを取得します。
select *aliases*
left outer join contact contact1_
on department0_.contact_id=contact1_.ID
where
department0_.company_id=?
order by department0_.name desc
しかし、私が実行しようとしているとき
from Department e
left join e.primaryContact
where (e.insuranceCompany.id=?)
order by e.primaryContact.name asc
私は得る:
select *aliases*
from department department0_
left outer join contact contact1_ on
department0_.primary_contact_id = contact1_.ID
cross join contact contact2_
where
department0_.primary_contact_id = contact2_.ID
and department0_.company_id = ? order by contact2_.name desc
違いは
cross join contact contact2_ where department0_.primary_contact_id=contact2_.ID
したがって、ソートするときは常に内部結合がありますprimaryContact.name
この状況で左結合を実行するにはどうすればよいですか? (私は休止状態 3.6.10 を使用しています)
前もって感謝します。