• 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

VPS Starter Arubacloud
0 głosów
475 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 309 wizyt
pytanie zadane 11 czerwca 2017 w Java przez Jonki Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 1,150 wizyt
pytanie zadane 11 czerwca 2019 w Java przez JuniorPL Użytkownik (770 p.)
0 głosów
1 odpowiedź 365 wizyt
pytanie zadane 26 września 2022 w SQL, bazy danych przez randomName Nowicjusz (220 p.)

92,453 zapytań

141,262 odpowiedzi

319,087 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!

...