Générer des entités JPA 2 à partir de la base de données existante
Comment puis-je générer JPA2 compliant @Entity à partir de bases de données existantes?.
j'ai trouvé ceci: Question
n'est toujours pas clair si JBoss va générer des JPA2 conformes et aussi je voudrais savoir s'il y a un vendeur indépendant moyen de le faire.
10 réponses
vous pouvez utiliser un plugin comme Eclipse Dali pour faire le truc pour vous. Vous pouvez vous référer à la documentation, section 3.11 des Entités Génératrices de Tables .
Je ne connais aucun outil spécifique indépendant du fournisseur pour faire cela, cependant.
essayez D'utiliser les outils OPENJPA de cartographie inverse. Ils offrent beaucoup plus de facilité et sont faciles à configurer. Cet exemple clarifierait les choses.
si vous utilisez maven comme outil de construction, Ajoutez cette entrée à votre pom.xml
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2</version>
<configuration>
<mainClass>org.apache.openjpa.jdbc.meta.ReverseMappingTool</mainClass>
<commandlineArgs>
-directory src/main/java -accessType fields
-useGenericCollections true -package org.yourproject.model
-metadata none -annotations true
-innerIdentityClasses false -useBuiltinIdentityClass false
-primaryKeyOnJoin false
</commandlineArgs>
<includePluginDependencies>true</includePluginDependencies>
</configuration>
<dependencies>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.CR3</version>
</dependency>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-all</artifactId>
<version>2.0.1</version>
</dependency>
</dependencies>
</plugin>
ajouter également les propriétés suivantes dans la persistance.xml qui se trouve dans votre dossier META-INF de vos ressources. Ces seraient exploitées par openjpa outil pour établir la connexion à la base de données.
<properties>
<property name="openjpa.ConnectionUserName" value="${db.username}"/>
<property name="openjpa.ConnectionPassword" value="${db.password}"/>
<property name="openjpa.ConnectionURL" value="${db.url}"/>
<property name="openjpa.ConnectionDriverName" value="${db.driver.class}"/>
</properties>
pour générer les fichiers Entity il suffit de lancer l'objectif maven dans le répertoire du projet en utilisant mvn org.codehaus.mojo: exec-maven-plugin:java et il générera les fichiers à l'emplacement désiré.
vous devriez jeter un oeil à minuteproject sur cette rétro-ingénierie de piste pour JPA2 . Il s'agit d'un outil indépendant du fournisseur. Dans la version 0.5.5 il génère:
- JPA2 entités (pour la table et les points de vue) et la méta-modèle
- la persistance.xml (seule la configuration hibernate est disponible en 0.5.5) mais vous pouvez l'écraser.
- pom maven avec querydsl intégration
- Classes d'Enum (si spécifiées lors de l'enrichissement, c'est-à-dire dans le fichier de configuration).
je n'ai pas essayé avec de l'H2, mais pour ce faire, vous devez
- ajouter le pilote jdbc H2 en $MP_HOME/application/lib / extra
- ajoute la classe de pilote et les paramètres de connexion dans la configuration du projet minute.
, Vous devriez essayer MinuteProject:
http://minuteproject.wikispaces.com /
http://javacodesamples.wordpress.com/2011/02/04/jpa2-reverse-engineering-tool /
il y a une option dans L'IDE Netbeans pour générer des entités à partir d'une base de données.
Telosys est probablement le moyen le plus simple pour ce genre de génération de code.
il génère les entités JPA (bien sûr) et si vous voulez une application web entièrement opérationnelle
voir le site web: http://www.telosys.org
Eclipse fournit cette fonction pour un certain temps maintenant (création de Dali, inclus depuis la version Kepler). Juste à droite-cliquez sur votre projet JPA - > outils JPA - > générer des entités à partir des Tables:
MinuteProject est génial. J'ai généré des classes Java à partir D'Oracle schema pour JPA2. Et tout cela avec beaucoup de facilité. Suivez les étapes indiquées sur le site Web de minuteproject ici est l'url: allez ici
Ne "générer des entités à partir de la table" option fonctionne pour le 2e semestre de la base de données?, Je trouve toujours que la liste schema est vide dans L'étape des tables Select même si j'ai une configuration de connexion valide avec la base de données H2 en utilisant le pilote JDBC Générique.
la même connexion montre des tables en hibernation-outils. Par exemple, lorsque je crée un xml d'ingénierie inverse dans son éditeur, je peux rafraîchir l'onglet tables et voir une liste complète. Je n'ai pas sachez si les outils d'hibernation sont pertinents car ils pourraient utiliser la configuration de la console à la place.
si vous êtes un utilisateur netbeans, je reçois un excellent plugin en neatbeans, http://plugins.netbeans.org/plugin/53057/jpa-modeler
cette vidéo montre comment l'utiliser https://www.youtube.com/watch?v=TDbZ5EGpvoY
Il peut être installé à partir de NetBeans " menu Outils->Plugins
ça me va.