Sau khi xem xét truy vấn của bạn, tôi nhận ra một số vấn đề với HQL của bạn cần được giải quyết. Xem phần tại đây:
Vì vậy, bằng cách TÌM KIẾM TẤT CẢ CÁC TÍNH CHẤT, bạn không có khả năng lọc trên z con trong cùng một truy vấn. Khi đó, truy vấn của bạn sẽ giống như sau:
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 ?)
Điều duy nhất tôi không chắc là thuộc tính này ở đây:
(id_osoby)
Tôi không thấy bí danh này ở bất kỳ đâu và tôi không thấy cột này trong bất kỳ bảng nào của bạn. Bạn có chắc điều này là cần thiết?
Vì vậy, điều này bây giờ sẽ cung cấp cho bạn o thực thể mẹ đã được lọc theo thuộc tính của z con. Tuy nhiên, các con z là lười biếng, vì vậy bạn phải truy vấn các con đó một cách độc lập bằng ID z hoặc bạn có thể lười tìm nạp chúng trong cùng một giao dịch ngủ đông chỉ bằng cách gọi phương thức getter để trả về danh sách các con z.