У меня есть этот тест 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 ("select independent o from Order o left присоединиться к выборке t У меня есть исключение?