TomEE Plus и JPA - PullRequest
       1

TomEE Plus и JPA

2 голосов
/ 02 декабря 2011

Я пытаюсь настроить JPA в моем TomEE Plus. Я получил мой файл persistence.xml, как показано ниже

<persistence-unit name="test" transaction-type="JTA">
    <jta-data-source>jdbc/testDB</jta-data-source>
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.TestEntity</class>
    <properties>
        <property name="hibernate.hbm2ddl.auto" value="update" />
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.show_sql" value="true" />
    </properties>
  </persistence-unit>

При развертывании моего приложения я не вижу никаких ошибок в консоли. Я также вижу журналы, которые связывают PU с JNDI.

Но в БД таблицы не создаются.

Может кто-нибудь помочь мне в этом?

Ответы [ 2 ]

1 голос
/ 02 декабря 2011

Если вы используете реализацию JPA по умолчанию, поставляемую с TomEE (OpenJPA), а не с Hibernate, вам следует:

    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
1 голос
/ 02 декабря 2011

Если <provider> не указано в persistence.xml, то контейнер будет использовать свой поставщик постоянства по умолчанию. Для TomEE его поставщиком постоянства по умолчанию является OpenJPA.

<properties> должен соответствовать поставщику персистентности, который вы используете.

Итак, если вы используете OpenJPA, ваш persistence.xml должен выглядеть следующим образом: (OpenJPA <properties> можно найти по адресу здесь )

 <persistence-unit name="test" transaction-type="JTA">
    <jta-data-source>jdbc/testDB</jta-data-source>
    <class>com.TestEntity</class>
     <properties>
            <property name="openjpa.jdbc.DBDictionary" value="mysql"/>
            <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema"/>
      </properties>
  </persistence-unit>

Если вы хотите использовать hibernate в качестве поставщика сохраняемости, ваш persistence.xml должен выглядеть следующим образом:

 <persistence-unit name="test" transaction-type="JTA">
    <jta-data-source>jdbc/testDB</jta-data-source>
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.TestEntity</class>
    <properties>
        <property name="hibernate.hbm2ddl.auto" value="update" />
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.show_sql" value="true" />
    </properties>
  </persistence-unit>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...