C'est un comportement absolument correct.
Le not-null
l'attribut a deux significations :
- supporte les outils d'exportation de schéma
- vérifiez l'entité dans l'exécution (c'est-à-dire ne vérifiez pas le paramètre de colonne de la base de données)
Voir :5.1. Déclaration de mappage , extrait :
Et 5.1.11. Propriété , extrait :
Donc, si vos clients exécutent du code, qui essaie :
getHibernateTemplate().saveOrUpdate(myEntity);
tandis que myEntity
il manque une propriété définie comme not-null="true"
il est correct de lancer une exception d'exécution. Dans votre environnement de test, vous définissez probablement toujours la propriété sur some valeur non nulle.
Et il y a même un avantage. La base de données et l'application sont faiblement couplées. Donc, si nécessaire, vous pouvez faire plus de contraintes du côté de l'application, sans toucher à la base de données (par exemple, vous n'êtes pas autorisé)