Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Hibernacja zapytania wyszukiwania

Po zapoznaniu się z Twoim zapytaniem zdaję sobie sprawę z kilku problemów z Twoim HQL, które należy rozwiązać. Zobacz sekcję tutaj:

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

Tak więc, wykonując FETCH ALL PROPERTIES, nie masz możliwości filtrowania elementów potomnych z w tym samym zapytaniu. Twoje zapytanie powinno wtedy wyglądać tak:

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

Jedyne, czego nie jestem pewien, to ta właściwość tutaj:

(id_osoby)

Nie widzę nigdzie tego aliasu i nie widzę tej kolumny w żadnej z Twoich tabel. Czy na pewno jest to potrzebne?

W ten sposób otrzymasz teraz jednostki nadrzędne, które zostały przefiltrowane według właściwości elementów potomnych z. Elementy potomne z są jednak leniwe, więc musisz pytać o nie niezależnie za pomocą identyfikatora z lub powinieneś być w stanie pobrać je z opóźnieniem w tej samej transakcji hibernacji, po prostu wywołując metodę pobierającą, która zwraca listę elementów potomnych 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. niebuforowane zapytanie z MySQLi?

  2. Czy można połączyć ciągi z wielu wierszy i tabel w jedną kolumnę wyników?

  3. Czy MySQL może niezawodnie przywracać kopie zapasowe zawierające widoki, czy nie?

  4. wartość max_connections w AWS RDS

  5. PDO zwraca kolumny liczb całkowitych jako String w PHP5.4