sql >> Database >  >> RDS >> Mysql

Zoekopdracht in slaapstand

Na het bekijken van uw vraag realiseer ik me een paar problemen met uw HQL die moeten worden aangepakt. Zie de sectie hier:

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

Dus door een FETCH ALL PROPERTIES uit te voeren, heb je niet de mogelijkheid om te filteren op de z-kinderen in dezelfde query. Uw vraag zou er dan als volgt uit moeten zien:

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 ?)

Het enige waar ik niet zeker van ben, is deze woning hier:

(id_osoby)

Ik zie dat dit nergens een alias is en ik zie deze kolom in geen van uw tabellen. Weet je zeker dat dit nodig is?

Dus dit geeft je nu o bovenliggende entiteiten die zijn gefilterd op eigenschappen van de z-kinderen. De z-kinderen zijn echter lui, dus u moet deze onafhankelijk opvragen met de z-ID, anders zou u ze in dezelfde slaapstand-transactie lui moeten kunnen ophalen door de getter-methode aan te roepen om de lijst met z-kinderen te retourneren.



  1. HTML-formulier dat de echo's van variabelen verandert, maar GEEN database?

  2. Bepaalde gebruikers beperken tot alleen hun gegevens in een gemeenschappelijke tabel

  3. XML-gegevens invoegen in MySQL-tabel met behulp van PHP

  4. Zelfverwijzend ManyToMany-relatietypeORM