Ich verwende eine HQL-Abfrage, um bestimmte Datensätze zu erhalten. Wenn ich LEFT JOIN FETCH verwende, enthält eine Sammlung, die sich in meiner Zieleinheit befindet, doppelte Datensätze. Wenn ich nur linken Join verwende, wird es nicht. Ich denke, wenn Hibernate die Datensätze träge lädt, vermeidet es Duplikate.
%Vor%Meine Entität TableA hat eine Verbindung zu TablePV (LINKER JOIN FETCH z.attributeX pv)
TablePV hat eine Sammlung von TableY ("LINKER JOIN FETCH pv.attributeY anteil")
Jetzt wird Hibernate alles korrekt abbilden, mit Ausnahme der Kinder von TablePV. Es enthält mehrmals den gleichen Datensatz. Eine Deaktivierung von TableA hilft nicht, da es dort keine Duplikate gibt. Ich könnte diese Datensätze manuell entfernen, die ziemlich inperformant sind, denke ich.
Verwenden Sie in Ihrer Abfrage DISTINCT
, etwa SELECT DISTINCT z FROM Entity z...