persistence.xml игнорирует Hibernate и выбирает DataNucleus
Я играю с GWT (не знаю, имеет ли это значение) и Hibernate. Я создал файл persistence.xml в META-INF с (amoung) другой конфигурацией в строке: org.hibernate.ejb.HibernatePersistence. Но когда я запускаю EntityManager, он выбирает DataNucleus вместо Hibernate (который позже завершается ошибкой, поскольку он не установлен (баночка не в классной дорожке))
Java-код это:
EntityManagerFactory factory = Persistence.createEntityManagerFactory("gwt");
EntityManager em =factory.createEntityManager();
EntityTransaction transacation = em.getTransaction();
transacation.begin();
Campaign campaign = new Campaign();
campaign.setName("Test");
em.persist(campaign);
transacation.commit();
Конфигурационный файл содержит:
<?xml version="1.0" encoding="UTF-8"?>
<persistence
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"
version="1.0">
<persistence-unit name="gwt" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/DefaultDS</jta-data-source>
<properties>
...
3 ответа
Я использовал неправильные классы JPA Wrapper. Раньше я использовал geronimo-jpa.jar и в итоге использовал javax-persistance.jar от Glassfish. Не знаю, если это сладкое решение, но, по крайней мере, оно одно.
Так скажите мне, вы используете это на GAE/J? DataNucleus, очевидно, находится в CLASSPATH, так как он находится в вашем журнале, говоря именно это.
Цитирование раздела " Создание нового веб-приложения " из документации по плагину Google для Eclipse:
Создание проекта с помощью мастера создания новых веб-приложений
Мастер создания нового проекта веб-приложения позволяет вам создать новое веб-приложение, которое использует Google Web Toolkit (GWT) и / или Google App Engine:
Вы выбрали Использовать Google App Engine во время создания проекта? Если да, не надо.