Exécuter le script sql après les tables créées par jpa / EclipseLink?
est-il possible d'exécuter un script sql, après EclipseLink généré le ddl?
En d'autres termes, est-il possible que le EclipseLink propriété "eclipselink.ddl-génération" avec "drop-and-créer des tables" est utilisé et EclipseLink exécute une autre sql fichier (à insérer des données dans des tables venez de créer) après la création de la définition de la table?
Je suis en utilisant EclipseLink 2.x et JPA 2.0 avec GlassFish v3.
Ou puis-je initialiser les tables à l'intérieur d'une méthode java qui est appelé sur le projet (la guerre avec ejb3) de déploiement?
source d'informationauteur gerry
Vous devez vous connecter pour publier un commentaire.
Elle est appelée AVANT ddl-exécution. Et il semble y avoir pas de belle façon à l'adapter, comme il n'existe pas de cas que l'on pourrait utiliser.
Je suis tombé sur cette question pour les mêmes raisons, en essayant de trouver une approche pour exécuter un script d'initialisation après DDL génération. Je propose de répondre à une vieille question, dans l'espoir de réduire le montant de la "littérature de recherche" pour ceux qui recherchent la même solution.
Je suis en utilisant GlassFish 4 avec sa valeur par défaut EclipseLink 2.5 implémentation JPA. La nouvelle Génération de Schéma caractéristique sous JPA 2.1 en fait assez simple de spécifier un "initialisation" script après DDL génération est terminée.
La configuration ci-dessus génère des scripts DDL à partir de métadonnées (c'est à dire les annotations), après quoi le
META-INF/sql/load_script.sql
script est exécuté à remplir la base de données. Dans mon cas, j'ai des graines d'un peu de tableaux avec des données de test et de générer des vues supplémentaires.Des informations supplémentaires sur EclipseLink l'utilisation de JPA propriétés peuvent être trouvés dans le DDL section Génération de EclipseLink/Presse/2.5/JPA21. De même, L'Article 37.5 De La Base De Données De Création De Schéma dans Oracle Java EE 7 Tutoriel et TOTD #187 offre une introduction rapide aussi.
Ont un coup d'oeil à L'exécution d'un Script SQL au démarrage en EclipseLink qui décrit une solution présentée comme une sorte d'équivalent à Hibernate
import.sql
la fonction1. Les crédits de Shaun Smith:Je ne suis pas sûr que c'est un strict équivalent si je ne suis pas sûr que le script sera exécuté après la base de données génération. Les tests requis. Si ça ne marche pas, peut-être, il peut être adapté.
1 Hibernate a une jolie petite fonctionnalité qui est fortement sous-documentées et inconnu. Vous pouvez exécuter un script SQL lors de la SessionFactory droit de création après la génération de schéma de base de données pour importer des données dans une base de données actualisée. Vous avez juste besoin d'ajouter un fichier nommé à l'importation.sql dans votre classpath l'utilisateur root et de créer ou créez-goutte que votre mise en veille prolongée.hbm2ddl.la propriété d'auto.
Cela pourrait aider comme il y a une confusion ici:
Utiliser exactement le même ensemble de propriétés (à l'exception logger) pour les données de semis.
NE PAS UTILISER:
UTILISEZ:
Je confirme que cela a fonctionné pour moi.
Ce processus offre l'exécution de sql avant DDL relevés alors que ce serait bien (par exemple, pour insérer des données seed ) est d'avoir quelque chose qui s'exécute après les instructions DDL. Je ne suis pas si je suis absent quelque chose ici. Quelqu'un peut-il me dire comment faire pour exécuter sql APRÈS eclipselink a créé des tableaux (lors de la création des tables de la propriété est définie à tru)
🙂 Juste une substitution avec vos données