J'utilise Spring Data JPA et je me demande s'il est possible de modifier l'ordre de tri par défaut pour une entité utilisée par la méthode Spring Data findAll()
?
Vous devriez pouvoir le faire soit:
dans spring-data 1.5+, en remplaçant la méthode findAll () dans votre interface, en ajoutant l'annotation @Query et en créant une requête nommée dans votre classe Entity, comme ci-dessous, par exemple:
Entité
@Entity
@NamedQuery(name = "User.findAll", query="select u from User u order by u.address.town")
public class User{
}
Dépôt
public interface UserRepository extends ... <User, Long> {
@Override
@Query
public Iterable<User> findAll();
}
ou,
en créant une implémentation de référentiel personnalisé:
Vous pouvez y parvenir comme suit:
dao.findAll(new Sort(Sort.Direction.DESC, "<colName>"));
Une autre façon de faire la même chose. Utilisez le nom de méthode ci-dessous:
findByOrderByIdAsc()
Utilisez plutôt un PagingAndSortingRepository . Ceci vous permet d'ajouter un paramètre Queryparameter? Sort =,
Dépôt:
public interface UserRepository extends PagingAndSortingRepository<User, Long> {
//no custom code needed
}
Demande GET:
localhost:8080/users?sort=name,desc