• 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

VPS Starter Arubacloud
0 głosów
365 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,120 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,120 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,120 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 475 wizyt
pytanie zadane 26 lipca 2017 w Java przez Szymon Ciamaga Obywatel (1,980 p.)
0 głosów
0 odpowiedzi 309 wizyt
pytanie zadane 11 czerwca 2017 w Java przez Jonki Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 112 wizyt
pytanie zadane 22 kwietnia 2017 w Java przez Jonki Dyskutant (8,180 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...