webentwicklung-frage-antwort-db.com.de

Ändern Sie die Standardsortierreihenfolge für die Spring Data-Methode findAll ()

Ich verwende Spring Data JPA und frage mich, ob es möglich ist, die Standardsortierreihenfolge für eine Entität zu ändern, die von der Spring Data findAll()-Methode verwendet wird.

12
Marcel Overdijk

Sie sollten dazu in der Lage sein, entweder:

in spring-data 1.5+ überschreiben Sie die findAll () - Methode in Ihrem Interface, fügen Sie die @Query-Annotation hinzu und erstellen Sie eine benannte Query in Ihrer Entity-Klasse, wie zum Beispiel unten:

Entität

@Entity
@NamedQuery(name = "User.findAll", query="select u from User u order by u.address.town")
public class User{

}

Repository

public interface UserRepository extends ... <User, Long> {

    @Override
    @Query
    public Iterable<User> findAll();
}

oder,

erstellen Sie eine benutzerdefinierte Repository-Implementierung:

http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.custom-implementations

3
Alan Hay

Sie können dies wie folgt erreichen:

dao.findAll(new Sort(Sort.Direction.DESC, "<colName>"));

Ein anderer Weg, das gleiche zu erreichen. Verwenden Sie den folgenden Methodennamen:

findByOrderByIdAsc()
25
Mithun

Verwenden Sie stattdessen ein PagingAndSortingRepository . Damit können Sie einen queryparameter? Sort =, hinzufügen.

Repository:

public interface UserRepository extends PagingAndSortingRepository<User, Long> {
  //no custom code needed
}

GET-Anfrage:

localhost:8080/users?sort=name,desc
1
Matthias