我们在我们的应用程序中使用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; ...
你能提供任何其他解决方案吗?
答案 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一起使用