🛢️Parcours Fioul GroupéSpring Boot · Chapitre 09
Accueil › Spring Boot › Chapitre 09
Chapitre 09 / 19

Spring Boot — la partie Data

La couche de persistance avec Spring Data MongoDB : entités @Document, repositories, et méthodes de requête « devinées » d'après leur nom.

1 Notion

Spring Data, le principe

Spring Data fournit le CRUD sans écrire d'implémentation : on déclare une interface, Spring génère le code à l'exécution. Le starter spring-boot-starter-data-mongodb ajoute le support Mongo.

2 Étape

L'entité @Document

Une classe annotée @Document correspond à une collection. Elle reflète le document modélisé au parcours 1.

@Document(collection = "campagnes")
public class Campagne {
    @Id private String id;
    private String zone;
    private Statut statut;
    private Instant dateLimite;
    private String fournisseurId;
    private List<Commande> commandes = new ArrayList<>();
}
3 Étape

Le repository

Une interface qui étend MongoRepository hérite de findAll, findById, save, deleteById…

public interface CampagneRepository
        extends MongoRepository<Campagne, String> { }
4 Notion

Les méthodes dérivées

Spring déduit la requête du nom de la méthode.

List<Campagne> findByStatut(Statut statut);
List<Campagne> findByZoneAndStatut(String zone, Statut statut);
Requêtes sur mesure — pour aller plus loin (agrégations, requêtes complexes), on utilise @Query ou le MongoTemplate.
🛢️ Sur le projet Fioul Groupé

Crée Campagne, Commande (embarquée), Fournisseur et leurs repositories. findByZoneAndStatut produit exactement la requête écrite à la main au parcours 1 (chapitre 4).

À retenir
  • Spring Data génère le CRUD à partir d'une interface.
  • @Document/@Id mappent l'entité à la collection.
  • Méthodes dérivées : le nom = la requête ; @Query pour le sur-mesure.
← Chapitre 08