Poté, co jsem se podíval na váš dotaz, uvědomuji si několik problémů s vaším HQL, které je třeba vyřešit. Viz sekci zde:
https://docs .jboss.org/hibernate/orm/3.3/reference/en-US/html/queryhql.html#queryhql-joins
Takže provedením FETCH ALL PROPERTIES nemáte možnost filtrovat z potomků ve stejném dotazu. Váš dotaz by pak měl vypadat takto:
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 ?)
Jediná věc, kterou si nejsem jistý, je tato vlastnost zde:
(id_osoby)
Nikde nevidím tento alias a nevidím tento sloupec v žádné z vašich tabulek. Jste si jisti, že je to potřeba?
Takže to vám nyní dá o nadřazených entitách, které byly filtrovány podle vlastností z potomků. Děti z jsou však líné, takže je musíte hledat nezávisle podle ID z, jinak byste měli být schopni je líně načíst v rámci stejné transakce hibernace pouhým voláním metody getter, která vrátí seznam z potomků.