Efter at have set på din forespørgsel indser jeg et par problemer med din HQL, som skal løses. Se afsnittet her:
https://docs .jboss.org/hibernate/orm/3.3/reference/en-US/html/queryhql.html#queryhql-joins
Så ved at lave en FETCH ALL EGENSKABER har du ikke mulighed for at filtrere på z børnene i den samme forespørgsel. Din forespørgsel skulle se sådan her ud:
SELECT new com.mycompany.kwestionariusz.Osoba(
o.id, o.imie, o.nazwisko, o.telefon, o.email,
o.uczelnia, o.doswiadczenie, o.skadSlyszal)
from Osoba as o
INNER JOIN o.zainteresowania as z
WHERE ((o.id) = (id_osoby))
and (LOWER(z.zainteresowanie) LIKE ?)
and (LOWER(z.zainteresowanie) LIKE ?)
and (LOWER(z.zainteresowanie) LIKE ?)
and (LOWER(z.zainteresowanie) LIKE ?)
and (LOWER(z.zainteresowanie) LIKE ?)
Det eneste, jeg ikke er sikker på, er denne ejendom her:
(id_osoby)
Jeg kan ikke se, at dette bliver aliasset nogen steder, og jeg kan ikke se denne kolonne i nogen af dine tabeller. Er du sikker på, at dette er nødvendigt?
Så dette vil nu give dig o overordnede entiteter, der er blevet filtreret efter egenskaber for z børn. Z-børnene er dog dovne, så du skal forespørge efter dem uafhængigt af z-id'et, ellers bør du være i stand til at hente dem i dovne i den samme dvale-transaktion blot ved at kalde getter-metoden for at returnere listen over z-børn.