从现有数据库生成JPA 2实体

wil*_*824 33 java persistence entity code-generation jpa-2.0

如何从现有数据库生成符合JPA2的@Entity?

我发现了这个:问题

仍然不清楚JBoss是否会生成兼容的JPA2,而且我想知道是否有独立于供应商的方式来做到这一点.

Edw*_*rzo 20

您可以使用Eclipse Dali之类的插件为您完成这项工作.您可以参考文档,3.11 从表生成实体一节.

不过,我不知道有任何特定的供应商独立工具.


Hus*_*ala 17

尝试使用OPENJPA反向映射工具.它们提供了更多的设施,并且易于配置.这个例子将澄清.

如果您使用maven作为构建工具,请将此条目添加到您的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>
Run Code Online (Sandbox Code Playgroud)

还要在persistence.xml中添加以下属性,该属性位于资源的META-INF文件夹中.这些将由openjpa工具利用以建立与数据库的连接.

    <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>
Run Code Online (Sandbox Code Playgroud)

要生成实体文件,只需使用mvn org.codehaus.mojo:exec-maven-plugin:java在项目目录中启动maven目标 ,它将在所需位置生成文件.


小智 5

你应该看看minuteproject在这条赛道逆向工程的JPA2.它是独立于供应商的工具.在版本0.5.5中,它生成:

  • JPA2实体(用于表和视图)和关联的元模型
  • persistence.xml(只有hibernate配置在0.5.5中可用)但你可以覆盖它.
  • maven pom与querydsl集成
  • 枚举类(如果在浓缩时指定,即在配置文件中).

我没有尝试过H2,但要做到这一点你需要

  • 在$ MP_HOME/application/lib/extra中添加H2 jdbc驱动程序
  • 在MinuteProject配置中添加驱动程序类和连接参数.


Rya*_*yan 5

Netbeans IDE 中有一个选项可以从数据库生成实体。