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.

31
demandé sur Community 2011-04-29 18:23:42

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.

18
répondu Edwin Dalorzo 2011-04-29 14:40:32

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é.

15
répondu Hussain Pithawala 2016-06-07 10:47:59

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.
5
répondu xflorian 2011-06-28 20:12:49

il y a une option dans L'IDE Netbeans pour générer des entités à partir d'une base de données.

4
répondu Ryan 2012-12-18 13:38:28

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

4
répondu John T 2018-02-20 09:37:41

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:

Screenshot of the menu entry

3
répondu SebastianH 2016-02-11 11:44:12

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

2
répondu Sagar Kulkarni 2013-06-23 06:25:29

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.

0
répondu samarjit samanta 2011-05-18 02:46:18

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.

0
répondu zahid9i 2015-06-11 17:08:26