2012-02-10 4 views
2

Я использую Hibernate 3.4 на Websphere 7, с весны 2.5.6Websphere не могу найти Hibernate управляемого EntityManager

При запуске мое приложение, кажется, есть проблемы с Hibernate против OpenJPA:

 
10/02/12 10:41:50:448 GMT] 00000010 LocalEntityMa I org.springframework.orm.jpa.LocalEntityManagerFactoryBean createNativeEntityManagerFactory Building JPA EntityManagerFactory for persistence unit 'mypu' 
[10/02/12 10:41:50:495 GMT] 00000010 SystemErr  R WARNING: Found unrecognized persistence provider "org.hibernate.ejb.HibernatePersistence" in place of OpenJPA provider. This provider's properties will not be used. 

... а затем прекрасный трассировки стека, вызванные:

PersistenceProvider [[email protected]] не возвращает EntityManagerFactory для имени 'mypu'

Для получения информации, моя настойчивость единица определяется следующим образом:

<?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="mypu" transaction-type="JTA"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <jta-data-source>jdbc/serviceTrackerDS</jta-data-source> 
     <class>...my classes...</class> 
     <exclude-unlisted-classes>true</exclude-unlisted-classes> 
     <!-- Properties for Hibernate & Derby --> 
     <properties> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect" /> 
      <property name="hibernate.default_schema" value="APP"/> 
      <property name="hibernate.hbm2ddl.auto" value="create" /> 
      <property name="hibernate.show_sql" value="true" /> 
      <property name="hibernate.use_sql_comments" value="true" /> 
     </properties> 
    </persistence-unit> 
</persistence> 

Я не уверен, как поступить. Похоже, что где-то используется неверный провайдер сохранения, но я указал правильного провайдера в файле persistence.xml. Я знаю, что OpenJPA является диспетчером сохранения по умолчанию в Websphere 7, но я бы хотел использовать Hibernate здесь.

Любые советы?

ответ

3

Похоже, мне нужно было добавить jpaVendorAdapter в мой entityManagerFactory.

<bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"> 
    <property name="persistenceUnitName" value="mypu" /> 
    <property name="jpaVendorAdapter"> 
     <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/> 
    </property> 
</bean> 

Тестирование, но хорошо выглядит как разрешение.

Смежные вопросы