从现有数据库生成JPA 2实体
我如何从现有的数据库生成符合JPA2的@实体?
我发现这个问题
还不清楚JBoss是否会生成兼容的JPA2,也想知道是否有独立于供应商的方式来执行此操作。
你可以使用像Eclipse Dali这样的插件来为你做诡计。 您可以参考文档第3.11节“从表生成实体” 。
不过,我不知道任何具体的厂商独立工具。
尝试使用OPENJPA反向映射工具。 他们提供更多的设施,并易于configuration。 这个例子会澄清。
如果您使用maven作为您的构build工具,请将此条目添加到您的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>
还要在您的资源的META-INF文件夹中的persistence.xml中添加以下属性。 这些将被openjpa工具用来build立与数据库的连接。
<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>
要生成实体文件,只需使用mvn org.codehaus.mojo在项目目录中启动maven目标:exec-maven-plugin:java ,它将生成所需位置的文件。
您应该看看这个赛道上的微项目JPA2的逆向工程。 这是一个独立于供应商的工具。 在版本0.5.5中,它生成:
- JPA2实体(用于表和视图)和相关的元模型
- persistence.xml(在0.5.5中只有hibernateconfiguration可用),但是可以覆盖它。
- 与querydsl集成的maven pom
- 枚举类(如果指定在富集,即在configuration文件)。
我没有尝试过H2,但要做到这一点,你需要
- 在$ MP_HOME / application / lib / extra中添加H2 jdbc驱动程序
- 在MinuteProjectconfiguration中添加驱动程序类和连接参数。
Netbeans IDE中有一个选项可以从数据库中生成实体。
你应该尝试MinuteProject:
http://minuteproject.wikispaces.com/
http://javacodesamples.wordpress.com/2011/02/04/jpa2-reverse-engineering-tool/
Telosys工具可能是这种代码生成最简单的方法。
它生成JPA实体(当然),如果您想要一个完全可操作的Web应用程序请参阅教程: https : //sites.google.com/site/telosystutorial/
(其他网站: http : //tools.telosys.org/,http : //marketplace.eclipse.org/content/telosys-tools )
Eclipse现在提供这个function已经有一段时间了(源自达利,自开普勒版本开始)。 只需右键单击您的JPA项目 – > JPA工具 – >从表生成实体:
MinuteProject真棒。 我从JPA2的Oracle模式生成Java类。 而且这一切都很轻松。 按照th在minuteproject网站上给出的步骤这里是url: 去这里
“从表生成实体”选项适用于H2数据库?我总是发现在select表步骤中架构列表为空 ,即使我有一个使用通用JDBC驱动程序与H2数据库有效的连接设置。
同样的连接正在显示hibernate-tools中的表。 例如,当我在其编辑器中创build逆向工程xml时,可以刷新表格选项卡并查看完整列表。 我不知道是否hibernate工具是相关的,因为它可能使用控制台configuration。
如果你是一个netbeans用户,我会得到一个漂亮的插件, http: //plugins.netbeans.org/plugin/53057/jpa-modeler
本video演示如何使用https://www.youtube.com/watch?v=TDbZ5EGpVY
它可以从NetBeans的菜单Tools-> Plugins安装
它对我来说工作正常。