2016-10-26 3 views
2

In einem Webprojekt, das Spring-Daten (1.10.4.RELEASE) mit einer Oracle-Datenbank verwendet, versuche ich eine native Abfrage mit einer Variablen Sortieren zu verwenden.Spring Data und Native Abfrage mit Sortierung

public interface UserRepository extends JpaRepository<User, Long> { 
    @Query(nativeQuery = true,value = "SELECT * FROM USERS WHERE LASTNAME = :lastname #sort") 
    List<User> findByLastname(@Param("lastname") String lastname, Sort sort); 
} 

Die Abfrage gestartet ist:

SELECT * FROM USERS WHERE LASTNAME = 'Lorite' #sort ORDER BY LASTNAME 

Wie Sie die Anmerkung "#sort" nach wie vor gibt es zu sehen.

Ich habe versucht Spring Data and Native Query with pagination, aber die Annotation ist noch da und mit einer anderen Syntax wie? # {# Sort} oder {#sort} das Problem bestehen.

Alles ist willkommen.

Danke!

+1

Gibt es einen Grund, warum Sie eine native Abfrage hier verwenden? Spring Data JPA kann all dies automatisch für Sie erledigen, eine native Abfrage (oder sogar eine JPA-Abfrage) ist nicht erforderlich. – Jesper

+0

Ich weiß, aber die Abfrage ist komplizierter, das ist nur ein Beispiel, und die einzige Möglichkeit besteht darin, eine native Abfrage zu verwenden. Danke trotzdem. – Dlorite

Antwort

1

Die Dokumentation sagt:

Beachten Sie, dass wir derzeit für native Abfragen nicht die Ausführung von dynamischen Sortierung unterstützen, wie wir die eigentliche Abfrage deklariert manipulieren müsste und wir können dies nicht zuverlässig für native SQL .

Darüber hinaus ist diese #sort Interpolation existiert nicht

[1] http://docs.spring.io/spring-data/jpa/docs/current/reference/html/

+0

Gemäß dieser http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.at-query können Sie eine native Abfrage verwenden und eine Sort wie folgt verwenden Leute http://stackoverflow.com/questions/38349930/spring-data-and-native-query-with-pagination sagen. – Dlorite

Verwandte Themen