2010-01-20 4 views
0

Le projet actuel a récemment été modifié par le schéma de base de données. Il s'agissait en grande partie de nettoyages de style, tels que le fait de s'assurer que toutes les colonnes suivaient un modèle de nommage cohérent et étaient all_in_snake_case.Vérification des mappages de colonnes JPA au moment du chargement

Je crois que nous avons toutes les références de colonne dans notre DB ainsi que dans nos entités, est-il possible d'avoir JPA, EclipseLink, ou GlassFish faire une sorte de "vérifier tout" opération pour s'assurer que chaque entité existe et correspondre ??

Répondre

0

Mes deux cents:

  • écriture tests unitaires pour chacun de votre entité pour tester la cartographie et les requêtes du DAO. C'est un atout pour l'avenir qui en vaut la peine.
  • vous pouvez créer le schéma de base de données de la cartographie ou l'annotation (tourner la génération automatique des tables avec eclipselink.ddl-generation), puis comparer les deux schémas de base de données à l'aide de quelques outils de base de données (cela dépendra de votre base de données. Peut-être que votre DBA , si vous en avez un, peut aider).
+0

Vous avez raison. J'ai retardé l'ajout de tests unitaires, mais je dois mordre la balle et le faire. – Freiheit

0

Spécifique à l'implémentation JPA. DataNucleus peut certainement vérifier que votre schéma correspond aux définitions des entités, et je suis sûr que d'autres implémentations peuvent faire quelque chose de similaire

0

Il suffit d'écrire un test JUnit qui obtiendra tous les attributs mappés d'une entité en utilisant la réflexion java, puis utiliser SQL pour obtenir toutes les colonnes de la table, et comparez-les, répétez l'opération pour toutes vos entités ou la table.

par exemple si vous utilisez Oracle comme base de données, utilisez la requête suivante pour obtenir vos colonnes de table:

select column_name 
from user_tab_columns 
where table_name = 'YOUR_TABLE'; 
Questions connexes