【发布时间】:2013-10-02 19:54:48
【问题描述】:
我是 Java EE 和 JPA 领域的新手,在理解 persistence.xml 文件内容方面需要帮助。我使用 Eclipse IDE、TomEE 应用程序服务器、OpenJPA 作为持久性提供程序以及 MySQL 作为数据库。
现在,假设我有一个带有名为 A、B 和 C 的注释实体的 Java EE 项目,我想将这些实体映射到名为 TestDB 的 MySQL 数据库。我希望根据实体注释在部署期间创建数据库。在 MySQL 服务器上,我以“root”用户身份登录,密码为“123”。
persistence.xml 中的哪些属性对应于哪些 Java EE 环境工件(什么代表持久性单元,在哪里指定数据库名称……)?对于上述情况,这是正确的 persistence.xml 文件内容吗:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="Test" transaction-type="JTA">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<properties>
<property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/TestDB" />
<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" />
<property name="openjpa.ConnectionUserName" value="root" />
<property name="openjpa.ConnectionPassword" value="123" />
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)" />
<property name="openjpa.jdbc.DBDictionary" value="mysql" />
<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" />
</properties>
</persistence-unit>
</persistence>
还有哪些设置对 JPA 正常工作很重要? (感谢任何帮助)
【问题讨论】:
-
这个问题有点笼统:你在尝试
persistence.xml时遇到了哪些问题? -
我按照一些关于设置 persistence.xml 的文档编写了上面的代码,但这并不意味着它是正确的。我不确定几件事:什么代表持久性单元?如何设置 persistence.xml 属性以便生成数据库架构?
-
其实,我有一个 JEE 示例(应该是有效的),但不能让它运行。这是我在尝试运行 ant 构建文件时收到的日志消息的一部分:[code] [java] WARNING: RequestFailed{server=127.0.0.1:8080/tomee/ejb} JNDI_LOOKUPnull:/InitBeanRemote {error=Cannot open input stream to server: } [ java] 线程“主”org.apache.openejb.client.ClientRuntimeException 中的异常:来自服务器的无效响应:-1[/code]
标签: java jpa openjpa apache-tomee