【问题标题】:JPA persistence.xml file content detailsJPA persistence.xml 文件内容详情
【发布时间】: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


【解决方案1】:

persistence.xml 上方缺少数据源标记: &lt;jta-data-source&gt;TestDB-jta-DS&lt;/jta-data-source&gt;

然后,对于 Apache TomEE,可以在[tomee]/conf/tomee.xml 配置文件中定义数据源。因此,上述 persistence.xml 的正确数据源定义为:

<Resource id="TestDB-jta-DS" type="DataSource">
    JdbcDriver          com.mysql.jdbc.Driver
    JdbcUrl             jdbc:mysql://127.0.0.1:3306/TestDB
    UserName            root
    Password            123
    JtaManaged          true
    DefaultAutoCommit   false
</Resource>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2018-06-18
    • 2014-03-17
    相关资源
    最近更新 更多