【问题标题】:which hibernate class will support jpa CriteriaBuilder?哪个休眠类将支持 jpa CriteriaBuilder?
【发布时间】:2011-01-13 13:36:04
【问题描述】:

我们使用 Xa 事务成功地在我们的应用程序中实现了 Spring、hibernate +jpa。但是我们试图在我们的应用程序中实现标准,但我们遇到了一个错误,

java.lang.NoSuchMethodError: javax.persistence.EntityManager.getCriteriaBuilder()

那么你能告诉我在 hybernate 中为 javax.persistence.criteria.CriteriaBuilder 接口使用了哪些实现类吗? 列出了我们正在使用的几个 jar 文件,

休眠 3.3,jpa 2.0
spring-orm 3.0.2 休眠实体管理器

更新:

我将我的休眠 jar 更改为(hibernate-core-3.6.0.CR2,hibernate-entitymanager-3.6.0.CR2 版本),但仍然会出现同样的异常,

CriteriaBuilder criteriaBuilder= this.getJpaTemplate().getEntityManagerFactory().getCriteriaBuilder();

在我的配置文件中:

<beans:bean id="jpaTemplate" class="org.springframework.orm.jpa.JpaTemplate">
    <beans:property name="entityManagerFactory">
        <beans:ref bean="entityManagerFactory" />
    </beans:property>
</beans:bean>


<beans:bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <!-- added by shiju  for getting atomoikas xa datasource-->
    <beans: property name="dataSource">
        <beans: ref bean="dataSource"/>
    </beans: property>
    <beans: property name="persistenceUnitName" value="payhub" />
    <beans: property name="jpaVendorAdapter">
        <beans:bean
            class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <beans: property name="generateDdl" value="false" />
            <beans: property name="showSql" value="true" />
            <beans: property name="databasePlatform" value="${database.target}" />
        </beans:bean>
    </beans: property>
    <beans: property name="persistenceXmlLocation">
        <beans:value>classpath:META-INF/persistence.xml</beans:value>
    </beans:property>
</beans:bean>

java.lang.NoSuchMethodError: javax.persistence.EntityManagerFactory.getCriteriaBuilder()Ljavax/persistence/criteria/CriteriaBuilder;...

您能提供其他解决方案吗?

【问题讨论】:

    标签: hibernate spring jpa


    【解决方案1】:

    我很确定 Hibernate 3.3 没有实现 JPA 2。您需要升级到更新的版本(例如 3.6)

    【讨论】:

      【解决方案2】:

      java.lang.NoSuchMethodError: javax.persistence.EntityManagerFactory.getCriteriaBuilder()

      玛雅,

      getCriteriaBuilder() 必须在 entityManager 上调用,而不是在 entityManagerFactory 上。

      【讨论】:

        【解决方案3】:

        尝试使用 Hibernate 3.6.3 和 JPA 2.0

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-11
          • 2014-05-08
          • 2017-09-01
          • 2012-04-18
          相关资源
          最近更新 更多