Adloun

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

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →