Я нашел этот HQL-запрос, который пытаюсь понять.В комментарии говорится, что LEFT JOIN
заставляет Hibernate активно загружать связанные сущности в дочерней таблице, а модификатор DISTINCT
необходим для фильтрации дублирующихся родительских сущностей в наборе результатов.Имеют ли эти комментарии смысл?Я не видел, чтобы объединение использовалось таким образом ранее.
SELECT DISTINCT p FROM Parent AS p
LEFT JOIN p.children AS c
WHERE p.state = 1
ORDER BY p.modified
Примечание c
не используется в предложениях WHERE
или ORDER BY
.
Кажется, это будет безопасночтобы заменить этот запрос более простым:
SELECT p FROM Parent AS p
WHERE p.state = 1
ORDER BY p.modified
Но я не уверен, есть ли веская причина , исходный запрос был написан как есть.