Hibernate 4.3.11 (et les autres versions) doit faire attention aux annotations de validation. - Vous devez donc peut-être mettre à jour
Ce sont des citations de Manuel d'Hibernate 4.3.11
Chapitre 22. Modules supplémentaires
Hibernate Core offre également l'intégration avec certains systèmes externes. modules/projets externes. Il s'agit notamment d'Hibernate Validator, l'implémentation de référence de la validation des beans (JSR 303) et Hibernate Search.
Chapitre 22.1 Validation des haricots
... L'intégration entre Hibernate et Bean Validation fonctionne à deux niveaux. Premièrement, elle est capable de vérifier les instances en mémoire d'une classe pour les les violations de contraintes. Deuxièmement, il peut appliquer les contraintes à la classe métamodèle Hibernate et les incorporer dans le schéma de base de données généré. de base de données générée. ...
Chapitre 22.1.4 Schéma de la base de données
Hibernate utilise les contraintes Bean Validation pour générer un schéma de base de données précis :
@NotNull leads to a not null column (unless it conflicts with components or table inheritance)
@Size.max leads to a varchar(max) definition for Strings
@Min, @Max lead to column checks (like value <= max)
@Digits leads to the definition of precision and scale (ever wondered which is which? It's easy now with @Digits :) )
Note : @Lengh fonctionne aussi, comme @Size
Lorsque vous utilisez Hibernate Validator 5.1, vous avez également besoin d'une implémentation. Par exemple
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
</dependency>
Si vous n'avez pas cette information, Hibernate ORM ne sera pas en mesure de lancer Hibernate Validation, et par conséquent il ne prendra pas (tout) JSR-303 par exemple @Length
, @Size
en compte !
0 votes
Par ailleurs, si vous ne définissez pas la longueur, elle sera de 255 par défaut (testé avec MySQL).