【问题标题】:javax.persistence.PersistenceException : [PersistenceUnit: vodPersistenceUnit] class or package not foundjavax.persistence.PersistenceException : [PersistenceUnit: vodPersistenceUnit] 类或包未找到
【发布时间】:2013-08-05 08:58:44
【问题描述】:

我收到以下错误:

使用名称创建 bean 时出错 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0' 在类路径资源 [jpaDaoContext.xml] 中定义:初始化 豆失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建类中定义的名称为“vodEntityManagerFactory”的bean 路径资源 [jpaDaoContext.xml]:init 方法调用失败; 嵌套异常是 javax.persistence.PersistenceException: [PersistenceUnit: vodPersistenceUnit] 类或包未找到

我在 Google 上查看了一下,被告知要选择 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>

问候

【问题讨论】:

    标签: java spring hibernate


    【解决方案1】:

    我解决了这个问题。我不得不在文件“persistence.xml”中注释这三行:

       <!--class>mypackage.persistent.TicketType</class>
        <class>mypackage.persistent.TransactionType</class>
        <class>mypackage.persistent.StatutSession</class--> 
    

    目前我不知道为什么它可以解决问题。这个spring文件真的很难调试。

    【讨论】:

      【解决方案2】:

      如果您必须注释掉“类”元素,很可能其中一个类没有定义,或者在类路径中不可用。

      我遇到了同样的错误,并且在完全限定名称全部正确后解决了。理想情况下,Hibernate 应该告诉您找不到哪个类,但遗憾的是在这种情况下它不会这样做。

      【讨论】:

        【解决方案3】:

        您还没有这样做,请将 &lt;property name="persistenceUnitName" value="vodPersistenceUnit" /&gt; 作为您的 entityManagerFactory bean 定义的属性放在您的 jpaDaoContext.xml 中,例如:

        <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
          <property name="persistenceUnitName" value="vodPersistenceUnit" />
          <property name="dataSource" ref="dataSource" />
          <property name="jpaVendorAdapter">...</property>
        </bean>
        

        【讨论】:

        • 感谢您的回复。问题仍然相同。 jpaDaoCONtext.xml 包含以下 ` org.hibernate.ejb.HibernatePersistenceclasspath:META-INF/persistence-batch.xml`
        【解决方案4】:

        我在尝试在 WebLogic 12.1.3 中运行 Spring Boot 应用程序时遇到了这个异常。我们的特定应用程序仅调用 Web 服务,因此无需访问数据库。所以在我添加的库依赖中:

        <exclusions><exclusion> <groupId>org.springframework</groupId><artifactId>spring-tx</artifactId></exclusion></exclusions>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-12
          • 2018-04-21
          • 1970-01-01
          • 1970-01-01
          • 2021-04-10
          相关资源
          最近更新 更多