【问题标题】:i added jpa2 jar file to library, but still can't find getCriteriaBuilder method我将 jpa2 jar 文件添加到库中,但仍然找不到 getCriteriaBuilder 方法
【发布时间】:2011-11-20 16:09:30
【问题描述】:

我正在使用休眠 jpa,我可以成功使用 jpql 查询,但我不能使用条件 api。我已阅读 JPA Criteria API missingjar file for JPA 2.0,我将 hibernate-jpa-2.0-api-1.0.1.Final 文件添加到库中,但仍然找不到 getCriteriaBuilder() 方法。请帮帮我

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;

method(){
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("Persistenceunit");
    EntityManager em = emf.createEntityManager();
    CriteriaBuilder cb = em.getCriteriaBuilder();
}

我正在使用这些库: 我的休眠库文件:antlr-2.7.6.jar、asm.jar、asm-attrs.jar、cglib-2.1.3.jar、commons-collections-2.1.1.jar、dom4j-1.6.1.jar、ehcache -1.2.3.jar、ejb3-persistence.jar、hibernate3.jar、hibernate-annotations.jar、hibernate-commons-annotations.jar、hibernate-entitymanager.jar、hibernate-jpa-2.0-api-1.0.1.Final .jar、休眠工具.jar、javassist.jar、jdbc2_0-stdext.jar、jta.jar、jtidy-r8-20060801.jar。是什么原因造成的?

还有其他库:jsf-api.jar、jsf-impl.jar、JSTL 1.1 - standard.jar、JSTL 1.1 - jstl.jar、commons-collections-3.2.1.jar、commons-digester3-3.0.jar和漂亮的脸蛋

【问题讨论】:

    标签: hibernate jpa-2.0 criteria-api


    【解决方案1】:

    您是否在为 2.0 添加库时删除了 JPA 1.0 库?如果不是,那么看起来 EntityManager 是从那里挑选出来的。这就是为什么它失败的第一点是 JPA 2 中引入的方法。

    【讨论】:

    • 我的休眠库文件:antlr-2.7.6.jar、asm.jar、asm-attrs.jar、cglib-2.1.3.jar、commons-collections-2.1.1.jar、dom4j -1.6.1.jar、ehcache-1.2.3.jar、ejb3-persistence.jar、hibernate3.jar、hibernate-annotations.jar、hibernate-commons-annotations.jar、hibernate-entitymanager.jar、hibernate-jpa-2.0 -api-1.0.1.Final.jar、hibernate-tools.jar、javassist.jar、jdbc2_0-stdext.jar、jta.jar、jtidy-r8-20060801.jar。这可能导致这种情况?还有其他库:jsf-api.jar、jsf-impl.jar、JSTL 1.1 - standard.jar、JSTL 1.1 - jstl.jar、commons-collections-3.2.1.jar、commons-digester3-3.0.jar & prettyfaces
    • ejb3-persistence.jar 可能是此问题的根源,因为它包含 EntityManager.class。下一步可能是删除那些属于您以前版本的 Hibernate 的库。
    • 我删除了 ejb3-persistence.jar 和所有 hibernate 库并添加了这些 hibernate-distribution-3.6.7.Final jar 文件:antlr-2.7.6.jar、dom4j-1.6.1.jar、 hibernate3.jar、hibernate-jpa-2.0-api-1.0.1.Final.jar、javassist-3.12.0.GA.jar、jta-1.1.jar、slf4j-api-1.6.1.jar。现在我的项目可以找到getCriteriaBuilder方法,但是在项目运行的时候,出现了这个错误:java.lang.AbstractMethodError: org.hibernate.ejb.EntityManagerImpl.getCriteriaBuilder()Ljavax/persistence/criteria/CriteriaBuilder;堆栈跟踪没有其他任何消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    相关资源
    最近更新 更多