• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak napisać natywne zapytanie w SQL, ManyToMany

Object Storage Arubacloud
0 głosów
381 wizyt
pytanie zadane 26 września 2022 w SQL, bazy danych przez randomName Nowicjusz (220 p.)

Hej. Mam dwie encje połączone relacją ManyToMany. Chcę napisać natywne zapytanie w SQL do bazy danych, by wyciągnąć listę pól z listy objektów. To zapytanie:
 

@Query(value = "SELECT v.names FROM Person as v WHERE v.personAge=:2")

zwraca mi listę obiektów names, każdy obiekt names ma pole first name i second name. Chcę z zapytania wyciągnąć listę samych second name, nie obiektów names.

komentarz 26 września 2022 przez PreZmyK Pasjonat (21,470 p.)
odnieś się do obiektu v.names.second_name
komentarz 26 września 2022 przez Wiciorny Ekspert (269,790 p.)

@randomName, ja bym dodał w jakim języku ... i z jakim dialektem natywnym masz do  czynienia, bo to zależy od tego jaki framework stoi za komunikacja z bazą 

Inaczej będzie pisany dialekt dla Encji które są tworzone z pomocą jakiegoś frameworku PHP, a inaczej dla Javy czy C#... stąd właśnie pojęcie ORM'u

komentarz 26 września 2022 przez randomName Nowicjusz (220 p.)
java, spring data
komentarz 26 września 2022 przez Wiciorny Ekspert (269,790 p.)

@randomName, otworzyłem tematem, żeby nie było to w sekcji komentarzy. 

1 odpowiedź

+2 głosów
odpowiedź 26 września 2022 przez Wiciorny Ekspert (269,790 p.)

Zapoznaj się z dialektem JPQL,https://docs.oracle.com/cd/E11035_01/kodo41/full/html/ejb3_langref.html   bo jeśli korzystasz np. z Hibernate to o ile używasz JpaRepository jako providera i implementacji JPA to powinieneś użyć JPQL i do wybranej przez siebie metody dodać odpowiednie parametry ( native-queyr params).


Masz dwa sposoby, albo z poziomu kodu... za pomocą metody... createNativeQuery(..)
https://docs.oracle.com/javaee/7/api/javax/persistence/EntityManager.html
dostępnej w ramach entityManagera.

Albo z poziomu repozytorium jako adnotacja

@NamedNativeQuery


Dla adnotacji nie musisz wtedy tworzyć zapytania SQL  mapowanym - w języku JPQL, tylko normalnie piszesz SQLem i adnotujesz to nad wybraną nazwą metody w repozytorium twoim 

Podobne pytania

0 głosów
2 odpowiedzi 479 wizyt
pytanie zadane 26 lipca 2017 w Java przez Szymon Ciamaga Obywatel (1,980 p.)
0 głosów
0 odpowiedzi 311 wizyt
pytanie zadane 11 czerwca 2017 w Java przez Jonki Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 117 wizyt
pytanie zadane 22 kwietnia 2017 w Java przez Jonki Dyskutant (8,180 p.)

92,568 zapytań

141,420 odpowiedzi

319,620 komentarzy

61,954 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...