Я использую HQL-запрос для получения определенных записей. Если я использую LEFT JOIN FETCH
коллекция, которая находится в моей целевой сущности, будет содержать дубликаты записей. Если я использую только левое соединение, оно не будет. Я предполагаю, что когда Hibernate лениво загружает записи, он избегает дубликатов.
"SELECT z FROM ", TableA.TABLE_NAME, " z ", //
"LEFT JOIN FETCH z.attributeX pv ", //
"LEFT JOIN FETCH pv.attributeY anteil ", //
"LEFT JOIN FETCH z.attributeB kma ", //
"LEFT JOIN FETCH kma.attributeC ", //
"WHERE anteil.attributeD.attributeE.id = :eId ", //
"AND pv.attributeG.id = :gId ");
Моя сущность TableA
имеет ссылку на TablePV
(LEFT JOIN FETCH z.attributeX pv
)
TablePV
имеет коллекцию TableY
(LEFT JOIN FETCH pv.attributeY anteil
)
Теперь Hibernate отобразит все правильно, кроме детей TablePV
. Он будет содержать несколько раз одну и ту же запись. TableA
не помогают, так как там нет дубликатов. Я мог бы вручную удалить те записи, которые были бы весьма неэффективными, я думаю.