Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 5 · Application directe du cours
Une colonne de trop
Les données en base avec JPA et Spring Data · niveau 2
Énoncé
Le projet code/ch5/erreurs/validation-schema crée la table livre par un script schema.sql (colonnes isbn et titre), alors que l'entité a reçu un nouveau champ editeur. Hibernate est réglé sur ddl-auto: validate. Que se passe-t-il au démarrage ? Qu'aurait fait update ? Laquelle de ces deux réactions préférer en production ?
Corrigé
L'application refuse de démarrer, avant même d'ouvrir son port :
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema validation: missing column [editeur] in table [livre]
Avec update, Hibernate aurait exécuté en silence un alter table livre add column editeur varchar(255) et l'application aurait démarré. En production, on préfère nettement l'échec de validate : un schéma qui ne correspond pas au code est une erreur de déploiement, à corriger par une migration écrite, relue et versionnée (chapitre 10), pas par une modification improvisée au démarrage, qui ne sait ni renommer une colonne ni convertir des données.
100 % gratuit
La suite du chapitre est sur Adloun
- 9 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.