• 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

Aruba Cloud - Virtual Private Server VPS
0 głosów
547 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,490 p.)
odnieś się do obiektu v.names.second_name
komentarz 26 września 2022 przez Wiciorny Ekspert (280,450 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 (280,450 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 (280,450 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 549 wizyt
pytanie zadane 26 lipca 2017 w Java przez Szymon Ciamaga Obywatel (1,980 p.)
0 głosów
0 odpowiedzi 346 wizyt
pytanie zadane 11 czerwca 2017 w Java przez Jonki Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 144 wizyt
pytanie zadane 22 kwietnia 2017 w Java przez Jonki Dyskutant (8,180 p.)

93,324 zapytań

142,323 odpowiedzi

322,390 komentarzy

62,653 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...