Tri des résultats de requête avec des données de printemps

Tri des résultats de requête avec des données de printemps

1. introduction

Dans ce tutoriel, nous allons àlearn how to sort query results avecSpring Data.

Tout d'abord, nous allons examiner le schéma des données que vous souhaitez interroger et trier.

Et puis, nous allons plonger directement dans la façon de réaliser ces Spring Data.

Commençons!

2. Les données de test

Ci-dessous nous avons quelques exemples de données. Bien que nous l'ayons représenté ici sous forme de tableau, nous pouvons utiliser l'une quelconque des bases de données prises en charge par Spring Data pour le conserver.

La question à laquelle nous voulons répondre est la suivante: «Qui occupe quelle place dans la compagnie aérienne?», Mais pour rendre cela plus convivial, nous souhaitons trier par numéro de siège.

Prénom

Nom de famille

Numéro de siège

Jill

Forgeron

50

Eve

Jackson

94

Fred

Bloggs

22

Ricki

Bobbie

36

Siya

Kolisi

85

3. Domaine

Pour créer unSpring Data Repository, nous devons fournir une classe de domaine ainsi qu'un type d'identifiant.

Ici, nous avons modélisé notre passager en tant qu'entité JPA, mais nous aurions pu tout aussi bien le modéliser en tant que document MongoDB ou tout autre modèle d'abstraction:

@Entity
class Passenger {

    @Id
    @GeneratedValue
    @Column(nullable = false)
    private Long id;

    @Basic(optional = false)
    @Column(nullable = false)
    private String firstName;

    @Basic(optional = false)
    @Column(nullable = false)
    private String lastName;

    @Basic(optional = false)
    @Column(nullable = false)
    private int seatNumber;

    // constructor, getters etc.
}

4. Tri avec des données de printemps

Nous disposons de différentes options pour le tri avec Spring Data.

4.1. Tri avec le mot-clé de la méthodeOrderBy

Une option consisterait à utiliser la dérivation de méthode de Spring Data dans laquelle la requête est générée à partir du nom et de la signature de la méthode.

All we need to do here to sort our data is include the keyword OrderBy in our method name avec le (s) nom (s) de propriété et la direction (Asc ou Dsc) par laquelle nous voulons trier.

Nous pouvons utiliser cette convention pour créer une requête qui renvoie nos passagers par ordre croissant de numéro de siège:

interface PassengerRepository extends JpaRepository {

    List findByOrderBySeatNumberAsc();
}

Nous pouvons également combiner ce mot-clé avec tous les noms de méthodes Spring Data standard.

Voyons un exemple de méthode qui recherche les passagers par nom de familleand commandes par numéro de siège:

List findByLastNameOrderBySeatNumberAsc(String lastName);

4.2. Tri avec un paramètreSort

Our second option is to include a Sort parameter spécifiant le (s) nom (s) de propriété et la direction dans laquelle nous voulons trier:

List passengers = repository.findAll(Sort.by(Sort.Direction.ASC, "seatNumber"));

Dans ce cas, nous utilisons la méthodefindAll() et ajoutons l'optionSort lors de son appel.

Nous pouvons également ajouter ce paramètre à une nouvelle définition de méthode:

List findByLastName(String lastName, Sort sort);

Enfin, si nous paginons peut-être, nous pouvons spécifier notre tri dans un objetPageable:

Page page = repository.findAll(PageRequest.of(0, 1, Sort.by(Sort.Direction.ASC, "seatNumber")));

5. Conclusion

Nous avons deux options simples pour trier les données avec Spring Data via la dérivation de méthode en utilisant le mot-cléOrderBy ou en utilisant l'objetSort comme paramètre de méthode.

Comme toujours, vous pouvez trouver le codeover on GitHub.