【发布时间】: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;...
您能提供其他解决方案吗?
【问题讨论】: