I have 2 entities, A
and B
. They are related but I do not want to add the relationship mapping to the beans.
How can we use left outer join between A
and B
using HQL or criteria?
There are some workarounds available for this,
I was always going back these 2 options, is there any alternative for this? Or this in not possible?
Currently, the theta-style on joining the unrelated classes in the where clause using HQL only supports inner join.
The request for supporting the outer join for such situation is currently the 3-rd most voted enhancement but I don't think this feature will be implemented in the near feature as it requires the re-implementation of the current ANTLER-based query parser first which seems to be a gigantic task IMO.
If you insist to use the HQL to perform left join without adding the relationship between A and B , you can use option 3 to do the inner join first, then use the following HQL
from A a where a.some not in ( select b.some from B)
to find out all the A that cannot join B and combine the results programmatically .
Update
As of release 5.1.0 HHH-16 (Explicit joins on unrelated classes) is fixed and we should be able to join the unrelated entities.