Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta de pesquisa de hibernação


Depois de analisar sua consulta, percebo alguns problemas com seu HQL que precisam ser resolvidos. Veja a seção aqui:

https://docs .jboss.org/hibernate/orm/3.3/reference/en-US/html/queryhql.html#queryhql-joins

Portanto, fazendo um FETCH ALL PROPERTIES você não tem a capacidade de filtrar os z filhos na mesma consulta. Sua consulta deve ficar assim então:
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 ?)

A única coisa que não tenho certeza é esta propriedade aqui:
(id_osoby)

Não vejo isso sendo alias em nenhum lugar e não vejo essa coluna em nenhuma de suas tabelas. Tem certeza que isso é necessário?

Portanto, isso agora fornecerá o entidades pai que foram filtradas pelas propriedades dos z filhos. Os z filhos são preguiçosos, no entanto, você deve consultá-los independentemente pelo z ID ou poderá buscá-los com preguiça na mesma transação de hibernação apenas chamando o método getter para retornar a lista de z filhos.