【发布时间】:2011-08-15 13:19:46
【问题描述】:
【问题讨论】:
标签: java code-generation persistence entity jpa-2.0
【问题讨论】:
标签: java code-generation persistence entity jpa-2.0
您可以使用像 Eclipse Dali 这样的插件来为您解决问题。您可以参考文档,第 3.11 节Generating Entities from Tables。
不过,我不知道有任何特定的供应商独立工具可以做到这一点。
【讨论】:
尝试使用 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>
还在资源的 META-INF 文件夹中的 persistence.xml 中添加以下属性。这些将被 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>
要生成实体文件,只需在项目目录中启动 maven 目标,使用 mvn org.codehaus.mojo:exec-maven-plugin:java 它将在所需位置生成文件。
【讨论】:
<additionalClasspathElements><additionalClasspathElement>.</additionalClasspathElement></additionalClasspathElements> 添加类路径并将持久性放在 META-INF/persistence.xml 中
<openjpa-2.4.2-r422266:1777108 fatal user error> org.apache.openjpa.util.UserException: The persistence provider is attempting to use properties in the persistence.xml file to resolve the data source. A Java Database Connectivity (JDBC) driver or data source class name must be specified in the openjpa.ConnectionDriverName or javax.persistence.jdbc.driver property. The following properties are available in the configuration: "org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl@ce8c062f"
【讨论】:
你应该看看 minproject on this track reverse-engineering for JPA2。 它是一个独立于供应商的工具。在 0.5.5 版中,它生成:
我没有用 H2 尝试过,但要做到这一点,你需要
【讨论】:
Netbeans IDE 中有一个选项可以从数据库生成实体。
【讨论】:
MinuteProject 很棒。我从 Oracle 模式为 JPA2 生成了 Java 类。所有这一切都非常轻松。 按照 minproject 网站上给出的步骤,这里是 url:go here
【讨论】:
“从表中生成实体” 选项是否适用于 H2 数据库?我总是在选择表步骤中发现架构列表为 空,即使我有使用通用 JDBC 驱动程序与 H2 数据库建立有效连接。
同样的连接在 hibernate-tools 中显示表格。例如,当我在其编辑器中创建逆向工程 xml 时,我可以刷新表格选项卡并查看完整列表。我不知道休眠工具是否相关,因为它可能使用控制台配置。
【讨论】:
如果您是 netbeans 用户,我会在 netbeans 中获得一个出色的插件,http://plugins.netbeans.org/plugin/53057/jpa-modeler
此视频演示如何使用它https://www.youtube.com/watch?v=TDbZ5EGpvoY
可以从 NetBeans 的菜单 Tools->Plugins
安装对我来说很好用。
【讨论】: