Как настроить JPA для использования JNDI? - PullRequest
7 голосов
/ 04 декабря 2009

У меня есть рабочее определение персистентности, которое работает на тестах уровня Java. Теперь я хочу включить это в веб-приложение, которое определяет соединение с базой данных как JNDI в context.xml. Что мне нужно изменить, чтобы заставить его работать с JNDI вместо persistence.xml или, по крайней мере, получить информацию оттуда?

Ответы [ 2 ]

2 голосов
/ 18 июля 2016

Ваше 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 : согласно одному из ваших комментариев кажется, что ваш DataSource не является JTA-совместимым. Для Hibernate поставщик сохранения должен быть другим.

0 голосов
/ 10 сентября 2013

вы должны использовать файл persistence.xml при использовании JPA. потому что JPA должен проверить persistence.xml. так что вы можете использовать persistence.xml и jndi одновременно.

...