Próbuję skonfigurować LocalContainerEntityManagerFactoryBean bez pliku persisten.xml.Nie udało się określić Hibernate PersistenceProvider
to jest moje źródło danych - działa dla Hibernate SessionFactory - więc jest w porządku.
<bean id="dataSource"
class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
to moja LocalContainerEntityManagerFactoryBean
<bean id="myEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="application.models" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">create-drop</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
</props>
</property>
</bean>
Wyjątek że otrzymuję:
...Could not instantiate bean class [org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter]: Constructor threw exception; nested exception is java.lang.IllegalStateException: Failed to determine Hibernate PersistenceProvider
Czytałem dokumentację, i wiem, że LocalContainerEntityManagerFactoryBean ma taką właściwość, i podobny styl tworzenia LocalContainerEntityManagerFactoryBean działa wiosną w działaniu 3, a tutaj: http://softwarecave.org/2014/03/15/using-jpa-and-jta-with-spring/
Może masz pojęcie, co robię źle, a przynajmniej jaka wiosna chce mi powiedzieć przez ten wyjątek?
Dzięki z góry, Cheers :)
PS być jasne, nie udało się ustalić, hibernacji PersistenceProvider nie oznacza, że sprężyna oczekiwać persistence.xml - powinno to być błąd jak: Nr jednostki utrwalania analizowanych z {ścieżce klasy *: META-INF/persistence.xml}
ZDECYDOWANE:
dzięki JB Nizet - jeśli będzie miał podobny problem dodać:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.6.Final</version>
</dependency>
do pom.xml
Prawdopodobnie nie mają wymaganego hibernować słoiki w swojej ścieżce klas. Wiosna szuka klasy org.hibernate.jpa.HibernateEntityManagerFactory lub klasy org.hibernate.ejb.HibernateEntityManagerFactory –
Tak, to było to, dziękuję - ale dlaczego wiosna nie rzuciła mi czegoś w stylu: "nie znaleziono klasy "? to jest bardzo mylące, czy powinno być zgłaszane jako problem? – bkowalczyyk
Możesz to zgłosić. Bardziej przejrzysty komunikat o błędzie nie zaszkodzi nikomu. –