あなたの質問を見た後、私はあなたのHQLに対処する必要のあるいくつかの問題に気づきました。こちらのセクションをご覧ください:
したがって、FETCH ALL PROPERTIESを実行することにより、同じクエリでzの子をフィルタリングすることはできません。その場合、クエリは次のようになります。
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 ?)
私がよくわからないのは、ここにあるこのプロパティだけです:
(id_osoby)
これがエイリアス化されていることはわかりません。また、この列はどのテーブルにも表示されません。これが必要ですか?
したがって、これにより、zの子のプロパティによってフィルタリングされた親エンティティが提供されます。ただし、zの子は遅延しているため、z IDで個別にクエリを実行する必要があります。そうしないと、getterメソッドを呼び出してzの子のリストを返すだけで、同じHibernateトランザクション内でそれらを遅延フェッチできるはずです。