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

Własna metoda Hibernate z zapytaniem sql

Object Storage Arubacloud
0 głosów
478 wizyt
pytanie zadane 26 lipca 2017 w Java przez Szymon Ciamaga Obywatel (1,980 p.)

Witam czy istnieje możliwość stworzenia dodatkowej metody do klasy repozytorium, w którym będę mógł wykonać własne zapytanie sql ?

tzn

mam np taki interface

@Repository
public interface UserRepository extends JpaRepository<UserProfile, Long> {
}

I chciałbym dodać mu dodatkową metodę, w której będę mógł wykonać zapytanie sql. 

Nie wiem jak utworzyć taką metodę (Mogę w interfejsie ale to tylko będzie deklaracja a mi potrzebna cała definicja) i też nie mam pojęcia w jaki sposób mogę wywołać zapytanie przez hibernate. Pozdrawiam.

2 odpowiedzi

0 głosów
odpowiedź 26 lipca 2017 przez xenonso Mądrala (5,160 p.)
wybrane 26 lipca 2017 przez Szymon Ciamaga
 
Najlepsza
Polecam sprawdzić sobie Spring Data, gdzie w interfejsie wystarczy odpowiednio napisać nazwę metody

(np. List<Employee> findTop3ByFirstName(String firstName);) a Spring na podstawie słów kluczowych sam odgadnie o co ci chodzi. Tutaj dokumentacja https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation
komentarz 26 lipca 2017 przez Szymon Ciamaga Obywatel (1,980 p.)
Dzięki link pomógł najbardziej !
komentarz 26 lipca 2017 przez xenonso Mądrala (5,160 p.)
Oczywiście ten sposób działa w przypadku wybierania danych z bazy, jeśli chodzi o wpisywanie/usuwanie danych z bazy to można użyć adnotacji @Query tak jak jest to w odpowiedzi niżej
0 głosów
odpowiedź 26 lipca 2017 przez Mateusz51 Nałogowiec (28,180 p.)

Przykład z mojego repozytorium

import java.util.Date;

import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.sumarlidi.medieval.domain.MedievalEvent;



@Repository
public interface MedievalEventDAO extends CrudRepository<MedievalEvent,Long>{

	public Iterable<MedievalEvent> findByAccepted(@Param("accepted") Boolean accepted);
	
	public Iterable<MedievalEvent> findByAcceptedAndStartDateAfterOrderByStartDateAsc(@Param("accepted") Boolean accepted,@Param("date") Date date);
	
	@Query("SELECT DISTINCT e.startDate FROM MedievalEvent e WHERE e.accepted = :accepted ORDER BY e.startDate DESC")
	public Iterable<Date> findDistinctStartDateByAccepted(@Param("accepted") Boolean accepted);

	public Iterable<MedievalEvent> getEventByStartDateAndAccepted(Date startDate, Boolean accepted);
}

 

Podobne pytania

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ź 1,192 wizyt
pytanie zadane 11 czerwca 2019 w Java przez JuniorPL Użytkownik (770 p.)
0 głosów
1 odpowiedź 381 wizyt
pytanie zadane 26 września 2022 w SQL, bazy danych przez randomName Nowicjusz (220 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,939 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!

...