Я добавил файл jpa2 jar в библиотеку, но все еще не могу найти метод getCriteriaBuilder

я использую hibernate jpa, я могу успешно использовать запрос jpql, но я не могу использовать API критериев. я прочитал JPA Criteria API отсутствует и jar файл для 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, 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.


person Deniz    schedule 19.09.2011    source источник


Ответы (1)


Вы удалили библиотеки JPA 1.0, когда добавляли библиотеки для 2.0? Если нет, то похоже, что EntityManager выбирается оттуда. Вот почему первый пункт, где он терпит неудачу, — это метод, представленный в JPA 2.

person Mikko Maunu    schedule 20.09.2011
comment
Мои файлы библиотеки гибернации: 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. - person Deniz; 21.09.2011
comment
ejb3-persistence.jar, вероятно, является источником этой проблемы, поскольку он содержит EntityManager.class. Следующий шаг, вероятно, заключается в удалении тех библиотек, которые принадлежат вашей предыдущей версии Hibernate. - person Mikko Maunu; 21.09.2011
comment
я удалил ejb3-persistence.jar и все библиотеки гибернации и добавил эти файлы jar hibernate-distribution-3.6.7.Final: 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; В трассировке стека не было больше сообщений, чем это. - person Deniz; 22.09.2011