2016-03-22 6 views
0

Problem: Wie auf Master paginieren und alle Kinder (für jeden Master) bekommen?Hibernate onetomany Paginierung-auf-Master BasicType-ElementCollection-Kinder

Die Hibernate-Abfrage sollte eine Liste eindeutiger Stammdatensätze zurückgeben, die paginiert sind, und jede Master-Entität sollte alle untergeordneten Elemente enthalten (Basistyp String).

Ich versuchte, es von Master als Einheit und Kinder Grundtyp (String) über ElementCollection definieren aber die Abfrage duplizieren Master Einheiten, durch die ich nicht in der Lage bin auf Master Paginieren. Jedoch, wenn ich Fetch Lazy benutze, kann ich bekommen, was ich erwarte :)

Kann es nicht erreicht werden mit eifrig holen? Was ist der beste Weg, um es zu erreichen?

Vielen Dank im Voraus

+0

Haben Sie irgendwelche Gedanken zu diesem Thema? – Gokula

+0

Der Paginierungsgrenz-Offset wird auf das kartesische Produkt von Parent und Children über ElementCollection Basic Type und NICHT auf die Parent-Entität angewendet. – Gokula

Antwort

0

Kriterien Kriterien = getSession(). CreateCriteria (Parent.class) .setMaxResults (count) .setFirstResult (Start) .setFetchMode ("Kindern1", FetchMode.SELECT) . setFetchMode ("children2", FetchMode.SELECT) .setFetchMode ("children3", FetchMode.SELECT) .setResultTransformer (Criteria.DISTINCT_ROOT_ENTITY);

return criteria.list();