Mysql
 sql >> база данни >  >> RDS >> Mysql

Заявка за търсене в хибернация

След като разгледах вашата заявка, осъзнавам няколко проблема с вашия HQL, които трябва да бъдат решени. Вижте раздела тук:

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

Така че, като направите 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)

Не виждам това да има псевдоним никъде и не виждам тази колона в нито една от вашите таблици. Сигурни ли сте, че това е необходимо?

Така че това ще ви даде o родителски обекти, които са филтрирани по свойства на z деца. Z децата обаче са мързеливи, така че трябва да ги потърсите независимо от z ID или трябва да можете да ги извличате в рамките на същата транзакция на хибернация, само като извикате метода getter, за да върнете списъка с z деца.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CakePHP:Как да разположите промените в DB схемата в производството без грешки

  2. mysql_real_escape_string VS добавя наклонени черти

  3. УНИКАЛНО ограничение, само когато поле съдържа конкретна стойност

  4. Mysqli не позволява множество заявки?

  5. Създаване на комбинации от таблица/колони с помощта на SQL Query или Laravel SQL Query Builder