哪个hibernate类将支持jpa CriteriaBuilder?

时间:2011-01-13 13:36:05

标签: hibernate spring jpa

我们在我们的应用程序中使用Xa transcation成功实现了Spring,hibernate + jpa。但是我们尝试在我们的应用程序中实现标准,我们面临一个错误,

  

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

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

  

hibernate 3.3,jpa 2.0
  spring-orm 3.0.2   冬眠-EntityManager的

更新

我将我的hibernate 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; ...

你能提供任何其他解决方案吗?

3 个答案:

答案 0 :(得分:1)

我很确定Hibernate 3.3没有实现JPA 2.你需要升级到更新的东西(例如3.6)

答案 1 :(得分:0)

  

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

玛雅,

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

答案 2 :(得分:0)

尝试将Hibernate 3.6.3与JPA 2.0一起使用