Generar Entidades JPA 2 a partir de la Base de datos existente


¿Cómo puedo generar la Entidad @compatible con JPA2 a partir de Bases de datos existentes?.

Encontré esto: Pregunta

Todavía no está claro si JBoss generará JPA2 compatible y también me gustaría saber si hay una forma independiente del proveedor de hacer esto.

Author: Community, 2011-04-29

10 answers

Puedes usar un plugin como Eclipse Dali para hacer el truco por ti. Puede consultar la documentación, sección 3.11 Generando entidades a partir de Tablas.

No conozco ninguna herramienta específica independiente del proveedor para hacer esto, sin embargo.

 18
Author: Edwin Dalorzo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-29 14:40:32

Intente usar las herramientas de mapeo inverso de OPENJPA. Ofrecen mucha más facilidad y son fáciles de configurar. Este ejemplo aclararía.

Si está utilizando maven como su herramienta de compilación, agregue esta entrada a su 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>

También agregue las siguientes propiedades en la persistencia.xml que se encuentra en su carpeta META-INF de sus recursos. Estos serían aprovechados por openjpa tool para establecer la conexión con la base de datos.

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

Para generar los archivos de Entidad simplemente inicie el maven objetivo en el directorio del proyecto usando mvn org.codehaus.mojo:exec-maven-plugin:java y generará los archivos en la ubicación deseada.

 15
Author: Hussain Pithawala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-07 10:47:59

Deberías echar un vistazo a minuteproject en esta pista de ingeniería inversa para JPA2. Es una herramienta independiente del proveedor. En la versión 0.5.5 genera:

  • Entidades JPA2 (para tabla y vistas) y metamodelo asociado
  • persistencia.xml (solo la configuración de hibernación está disponible en 0.5.5) pero puede sobrescribirla.
  • maven pom con integración querydsl
  • Clases de enumeración (si se especifica en el enriquecimiento, es decir, en el archivo de configuración).

No tengo lo probé con H2, pero para hacer esto es necesario

  • agregue el controlador jdbc H2 en MP MP_HOME/application/lib/extra
  • agregue la clase de controlador y sus parámetros de conexión en la configuración de MinuteProject.
 5
Author: xflorian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-28 20:12:49
 5
Author: Cris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-14 15:19:19

Existe una opción en el IDE Netbeans para generar entidades a partir de una base de datos.

 4
Author: Ryan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-18 13:38:28

Telosys es probablemente la forma más sencilla para este tipo de generación de código.

Genera las entidades JPA (por supuesto) y si desea una aplicación web totalmente operativa

Ver el sitio web: http://www.telosys.org

 4
Author: John T,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-20 09:37:41

Eclipse proporciona esta función desde hace algún tiempo (originado desde Dali, incluido desde la versión de Kepler). Simplemente haga clic derecho en su proyecto de JPA - > Herramientas de JPA - > Generar entidades a partir de tablas:

Captura de pantalla de la entrada del menú

 3
Author: SebastianH,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-11 11:44:12

MinuteProject es impresionante. Generé clases Java desde Oracle schema para JPA2. Y todo con mucha facilidad. Siga los pasos dados en el sitio web de minuteproject aquí está la url: vaya aquí

 2
Author: Sagar Kulkarni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-23 06:25:29

¿La opción "generar entidades a partir de la tabla" funciona para la base de datos H2?, Siempre encuentro que la lista de esquemas está vacía en el paso Seleccionar tablas, aunque tengo una configuración de conexión válida con la base de datos H2 usando el controlador JDBC Genérico.

La misma conexión muestra tablas en hibernate-tools. Por ejemplo, cuando creo un xml de ingeniería inversa en su editor, puedo actualizar la pestaña tablas y ver una lista completa. No sé si hibernate tools es relevante como podría ser usando la configuración de la consola en su lugar.

 0
Author: samarjit samanta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-18 02:46:18

Si eres un usuario de netbeans, obtengo un excelente plugin en neatbeans, http://plugins.netbeans.org/plugin/53057/jpa-modeler

Este video muestra cómo usarlo https://www.youtube.com/watch?v=TDbZ5EGpvoY

Se puede instalar desde el menú de NetBeans Herramientas- > Plugins

Funciona bien para mí.

 0
Author: zahid9i,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-11 17:08:26