【问题标题】:How to configure JPA to use JNDI?如何配置 JPA 以使用 JNDI?
【发布时间】:2010-12-23 01:20:01
【问题描述】:

我有一个适用于 java 级别测试的持久性定义。现在我想将它合并到一个 Web 应用程序中,该应用程序在 context.xml 中将数据库连接定义为 JNDI。我需要进行哪些更改才能使其与 JNDI 而不是 persistence.xml 一起工作,或者至少从那里获取信息?

【问题讨论】:

标签: jpa persistence jndi


【解决方案1】:

您的 persistence.xml 开头应该是这样的(使用 EclipseLink 作为实现),对于 jdbc/MYNAME JNDI 名称:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
  <persistence-unit name="myPersistenceUnit" transaction-type="RESOURCE_LOCAL">    
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <non-jta-data-source>java:comp/env/jdbc/MYNAME</non-jta-data-source>
    <class>org.test.entity.MyEntity</class>
...
  </persistence-unit>
<persistence>

当然,您应该设置适合您环境的配置。在示例中,我使用了非 JTA DataSource:根据您的其中一个 cmets,您的 DataSource 似乎不符合 JTA。对于Hibernate,持久化提供者应该不同。

【讨论】:

    【解决方案2】:

    在使用 JPA 时必须使用 persistence.xml。因为 JPA 必须检查 persistence.xml。所以你可以同时使用 persistence.xml 和 jndi。

    【讨论】:

      猜你喜欢
      • 2011-02-19
      • 2020-11-23
      • 2019-02-22
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 2011-07-19
      相关资源
      最近更新 更多