2010-12-07 6 views
11

Je viens de commencer la mise à niveau d'une application qui utilisait Hibernate 3.5.6.Final à 3.6.0.Final, et il y a eu plusieurs hickups. Le dernier hickup je ne peux pas trouver une solution pour. 3.6.0.Final semble activer automatiquement la validation du bean lorsqu'un objet est sauvegardé/mis à jour via Hibernate. C'est très mauvais parce que certains de mes tests ne dérange pas de définir toutes les propriétés - ils ne sont tout simplement pas nécessaires. Honnêtement, je ne vois pas l'intérêt de définir chaque champ de "description" et d'innombrables autres champs uniquement pour se conformer à une validation arbitraire. Cela va me forcer à passer des heures à faire des objets valides dans tous mes tests (j'ai plus de 1300 tests fonctionnels maintenant). Et franchement, ce serait inutile car je suis certain que toute la validation est en cours dans le MVC et il n'y a pas d'autres moyens d'obtenir des données dans la base de données actuellement.Désactivation de la validation Hibernate lors de la sauvegarde/mise à jour avec Hibernate 3.6.0.Final

Je ne veux pas non plus subir de baisse de performance en validant mes beans deux fois - une fois dans le MVC, puis une autre fois dans Hibernate. Ce n'est tout simplement pas nécessaire dans mon cas.

Y a-t-il un moyen de désactiver cette fonction? J'utilise Spring et des fichiers de mapping Hibernate réguliers, pas JPA (je n'aime pas toutes les annotations).

Répondre

22

Ajouter ce qui suit à persistence.xml:

<validation-mode>NONE</validation-mode> 

ou ajouter la propriété à hibernate.cfg.xml:

<property name="javax.persistence.validation.mode">none</property> 

Voir 23.1.2. Configuration pour plus d'options.

+0

Y a-t-il un moyen de faire ça au printemps? Je n'utilise pas JPA, juste des fichiers xml réguliers de mise en correspondance hibernate. – egervari

+0

@egervari: Mis à jour. – axtavt

+0

Merci, ça l'a fait! Phew! – egervari

2

Définissez la propriété hibernate.validator.autoregister_listeners sur false. Vous pouvez également définir hibernate.validator.apply_to_ddl sur false.

Questions connexes