Comment puis-je générer @Entity conforme JPA2 à partir de bases de données existantes?.
J'ai trouvé ceci: Question
Il n'est toujours pas clair si JBoss générera du JPA2 conforme et je voudrais également savoir s'il existe un moyen indépendant du fournisseur de le faire.
Vous pouvez utiliser un plugin comme Eclipse Dali pour faire l'affaire pour vous. Vous pouvez vous référer à la documentation, section 3.11 Génération d'entités à partir de tables .
Cependant, je ne connais aucun outil indépendant spécifique au fournisseur pour le faire.
Essayez d'utiliser les outils de cartographie inversée OPENJPA. Ils offrent beaucoup plus de facilité et sont faciles à configurer. Cet exemple clarifierait.
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>
Ajoutez également les propriétés suivantes dans le fichier persistence.xml qui se trouve dans le dossier META-INF de vos ressources. Ceux-ci seraient exploités par l'outil openjpa 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 d'entité, lancez simplement 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 souhaité.
Vous devriez essayer MinuteProject:
http://minuteproject.wikispaces.com/
http://javacodesamples.wordpress.com/2011/02/04/jpa2-reverse-engineering-tool/
Vous devriez jeter un œil à minuteproject sur cette piste de rétro-ingénierie pour JPA2 . Il s'agit d'un outil indépendant du fournisseur. Dans la version 0.5.5, il génère:
Je ne l'ai pas essayé avec H2 mais pour ce faire, vous devez
Telosys est probablement le moyen le plus simple pour ce type 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
Il existe une option dans les Netbeans IDE pour générer des entités à partir d'une base de données.
MinuteProject est génial. J'ai généré Java à partir du schéma Oracle pour JPA2. Et tout cela avec beaucoup de facilité. Suivez les étapes données sur le site Web de minuteproject voici l'url: allez ici
L'option "générer des entités à partir de la table" fonctionne-t-elle pour la base de données H2 ?, je trouve toujours la liste des schémas vide dans le Sélectionnez l'étape des tables même si j'ai une configuration de connexion valide avec la base de données H2 à l'aide du pilote JDBC générique.
La même connexion montre des tableaux dans hibernate-tools. Par exemple, lorsque je crée un XML d'ingénierie inverse dans son éditeur, je peux actualiser l'onglet des tables et voir une liste complète. Je ne sais pas si les outils d'hibernation sont pertinents car ils pourraient utiliser la configuration de la console à la place.
Si vous êtes un utilisateur de netbeans, j'obtiens un excellent plugin dans 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 du menu de NetBeans Outils-> Plugins
Ça fonctionne bien pour moi.