Technically speaking, the temporary solution will still use inner joins when the entity is a leaf (has no sub-classes). Here, find(Customer.class, id) still generates the inner join because it does not have subclasses.