我收到以下错误:
使用名称创建bean时出错 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0' 在类路径资源[jpaDaoContext.xml]中定义:初始化 豆子失败了;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 在类中定义名为'vodEntityManagerFactory'的bean path resource [jpaDaoContext.xml]:调用init方法失败; 嵌套异常是javax.persistence.PersistenceException: [PersistenceUnit:vodPersistenceUnit]未找到类或包
我在谷歌上看了一下,我被告知要选择transaction-type = RESOURCE_LOCAL,但设置已经是那样了。这些设置有什么问题:
<?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">
<!-- transaction-type is RESOURCE_LOCAL or JTA -->
<persistence-unit name="vodPersistenceUnit"
transaction-type="RESOURCE_LOCAL">
<class>mypackage.persistent.HistoriqueAction</class>
<class>mypackage.persistent.ParametresTechniques</class>
<class>mypackage.persistent.TicketType</class>
<class>mypackage.persistent.TransactionType</class>
<class>mypackage.persistent.StatutSession</class>
<class>mypackage.persistent.Statistique</class>
<class>mypackage.persistent.StatUser</class>
<!-- Avoid to scan *.class and *.hbm.xml -->
<exclude-unlisted-classes />
</persistence-unit>
</persistence>
此致
答案 0 :(得分:5)
我解决了这个问题。我必须在“persistence.xml”文件中注释这三行:
<!--class>mypackage.persistent.TicketType</class>
<class>mypackage.persistent.TransactionType</class>
<class>mypackage.persistent.StatutSession</class-->
目前我不知道为什么它解决了这个问题。调试这个spring文件真的很难。
答案 1 :(得分:3)
如果你必须注释掉“class”元素,那么很可能其中一个类未定义,或者在类路径中不可用。
我遇到了同样的错误,一旦完全限定名称都正确就解决了。理想情况下,Hibernate应该告诉你哪个类没有找到,但遗憾的是它在这种情况下不会这样做。
答案 2 :(得分:1)
您还没有这样做,将<property name="persistenceUnitName" value="vodPersistenceUnit" />
放在您的jpaDaoContext.xml中作为您的entityManagerFactory bean定义的属性,如:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="vodPersistenceUnit" />
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">...</property>
</bean>
答案 3 :(得分:0)
尝试在WebLogic 12.1.3中运行Spring Boot应用程序时遇到此异常在依赖关系树中,我发现spring-tx包含在其中一个常见项目库中。我们的特定应用程序仅调用Web服务,因此无需数据库访问。所以在库依赖中我添加了:
<exclusions><exclusion> <groupId>org.springframework</groupId><artifactId>spring-tx</artifactId></exclusion></exclusions>