2013-04-11 11 views
49

Potrzebuję użyć surowego kodu SQL w repozytorium danych Spring, czy jest to możliwe? Wszystko, co widzę wokół @Query jest zawsze oparte na jednostkach.Czy można używać surowego kodu SQL w repozytorium wiosennym?

+0

Byłoby sqlquery zrobić? http://static.springsource.org/spring/docs/2.5.x/api/ –

+0

Jak mogę użyć tego w repozytorium? A może nie skorzystam z repozytorium i po prostu użyję tego obiektu w ramach mojej usługi? – Webnet

+0

Używasz wiosennych danych-jpa? – zagyi

Odpowiedz

77

Adnotacja @Query pozwala na uruchamianie natywnych zapytań poprzez ustawienie flagi nativeQuery na true.

Cytat ze Spring Data JPA reference docs.

Zobacz także, jak to zrobić, używając nazwanego zapytania natywnego.

+3

@ user454322, parametry zaczynają się od 1, więc jest to: '@Query (value =" SELECT * FROM USERS, GDZIE EMAIL_ADDRESS =? 1 ", nativeQuery = true) –

1

Możliwe jest również użycie Spring Data JDBC repository, który jest projektem społecznościowym zbudowanym na bazie Spring Data Commons, aby uzyskać dostęp do baz danych z surowym SQL, bez użycia JPA.

Jest mniej wydajny niż Spring Data JPA, ale jeśli potrzebujesz lekkiego rozwiązania do prostych projektów bez użycia ORM takiego jak Hibernate, to rozwiązanie warte wypróbowania.

0

Możemy użyć createNativeQuery ("Tutaj kwerenda SQL");

na przykład:

Query q = em.createNativeQuery("SELECT a.firstname, a.lastname FROM Author a"); 
List<Object[]> authors = q.getResultList(); 
Powiązane problemy