Ressource
1. Télécharger et lancer le projet
- Lancer Docker Desktop
- Télécharger et importer le projet Maven dans Eclipse
Lancer l’image docker présente dans le Dockerfile : docker compose up
Lancer une fois
- Lancer la méthode JpaSpringEnterpriseArchitectureApplication.main() une première fois
- Ceci va insérer des données dans la table
ArticleetClient- Dans
application.propertiesmodifierspring.sql.init.mode=alwaysenspring.sql.init.mode=never
2. Consignes
Objectif
Apprendre à utiliser les fonctionnalités de base de Spring Data JPA
- Le code est donné pour l’ensemble des entités JPA
- l’entité Article qui est dans plusieurs commandes
- l’entité Client qui a plusieurs commandes
- l’entité Commande qui a plusieurs articles
erDiagram CLIENT ||--o{ COMMANDE : places CLIENT { bigint id PK varchar nom varchar email } COMMANDE { bigint id PK timestamp created_on bigint client_id FK } ARTICLE { bigint id PK varchar nom double prix boolean actif } COMMANDE_ARTICLE { bigint commande_id FK bigint article_id FK } COMMANDE ||--o{ COMMANDE_ARTICLE : links ARTICLE ||--o{ COMMANDE_ARTICLE : links
- Les points d’entrées de notre application sont les Contrôleurs
CommandeControllerqui permet de récupérer / créer / supprimer une commande- Les autres Contrôleurs n’ont pas été codés
Créer une commande
Complémenter les classes *Service et *Repository afin de pour créer une nouvelle commande
- Il faut que tous les articles soient actifs pour créer une commande
curl --request POST \
--url http://localhost:4545/v1/commandes \
--header 'content-type: application/json' \
--data '{
"clientId": 1,
"articleIds": [
4
]
} '
Récupérer toutes les commandes
Faire l’endpoint pour récupérer toutes les commandes
- on veut également avoir un attribut
totalqui montre le prix total de la commande
⇒ Depuis postman ou votre navigateurs récupérer toutes les commandes
Complément
Dans le application.yml ajoutez spring.jpa.open-in-view=false
- What is this spring.jpa.open-in-view=true property in Spring Boot?
- The Open Session In View Anti-Pattern
Pour résoudre voir Optimisation des lectures