Peuvent Hiberner automatiquement en majuscules une colonne de lecture/insérer via la configuration?
Nous avons des colonnes avec des données qui doit toujours être en majuscule afin de garantir l'unicité. Je me demandais si hibernate permet de forcer l'ensemble de ces colonnes en majuscules via un fichier de configuration de changement?
En fait, nous utilisons une coutume UserType pour le cryptage/décryptage de données de la colonne pour une autre table, mais j'ai pensé que ce serait exagéré, juste pour les majuscules tout...
Sinon, je pensais à la modification des modèles tels que tous les getters/setters seront en majuscules n'importe quelle chaîne qui vont et viennent.
Le pire(?) scénario consiste à modifier l'Oracle contrainte de colonne pour ignorer la casse lors de la vérification de l'unicité.
Toutes les pensées?
Vous devez vous connecter pour publier un commentaire.
Beaucoup plus propre approche:
Plusieurs solutions:
UserType
pour convertir l'attribut majuscules.Solution n ° 1 est transparent pour le code, mais je ne suis pas un grand fan de "derrière votre dos" déclencheurs et je n'aime pas la propagation des règles d'entreprise de partout. Solution #3 et #4 sont Hibernate dépendant (mais ce ne serait pas un problème si). Solution n ° 2 est la plus simple et la solution portable si vous pouvez modifier le code. Ce serait mon choix si c'est une option.
Je ne suis pas au courant de tous les paramètres de configuration pour rendre cela possible. Cependant, vous pouvez essayer d'utiliser un intercepteur à corriger les données à insérer /mettre à jour, comme:
J'ai décidé de mettre en œuvre un UserType...il est aussi proche d'une hibernate configuration que je peux obtenir...voici le code...
Considérer cet élément de propriété
De sorte que le raisonnement...Que la mise en veille insère les données, ce type de convertir la chaîne en majuscules. Que la mise en veille sélectionne des données, la même chose arrive. L'avantage de cette classe a plus de juste changer le haricot get/set majuscules, tout est lorsque j'utilise un des Critères pour sélectionner sur serialNumber. Hibernate va également majuscules mes paramètre comme il jetait/appliquer le même type tel que défini dans la configuration de la table.
Donc, je n'ai pas besoin de mémoriser manuellement des majuscules à tous mes critères de recherche pour les numéros de série...hibernate s'en charge pour moi...c'est exactement ce que je suis en train de réaliser ici!
J'ai un JUnit qui démontre tout ça, mais je pense que ma réponse est trop grand comme il est...
Je suggère de vérifier cette page: http://forum.springsource.org/archive/index.php/t-18214.html
Il a 3 façons de le faire. Je crois la moins intrusive, la façon de le faire: