почему hibernate hql independent вызывает sql отдельный при левом соединении?

У меня есть этот тест HQL:

select distinct o from Order o left join fetch o.lineItems

и он генерирует отдельный SQL без очевидной причины:

select distinct order0_.id as id61_0_, orderline1_.order_id as order1_62_1_...

Набор результатов SQL всегда один и тот же (с отдельным SQL и без него):

order id | order name | orderline id | orderline name
---------+------------+--------------+---------------
       1 | foo        |            1 | foo item
       1 | foo        |            2 | bar item
       1 | foo        |            3 | test item
       2 | empty      |         NULL | NULL
       3 | bar        |            4 | qwerty item
       3 | bar        |            5 | asdfgh item

Почему спящий режим генерирует отдельный SQL? Отдельный SQL не имеет никакого смысла и делает запрос медленнее, чем необходимо. Это противоречит FAQ , в котором упоминается, что hql independent в данном случае является всего лишь сокращением для преобразователя результатов:

session.createQuery ("выберите отдельный o from Order o left присоединиться к выборке


Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, отредактировав это сообщение .

Закрыт 4 года назад .

Зачем использовать видимость пакета (по умолчанию), если класс не должен быть общедоступным в java

6
задан H.B. 16 June 2011 в 07:38
поделиться