2012-04-24 16 views
5

jestem wprowadzenie JPA2.0 w mojej ofercie pracy na bazie danych Oracle 9i i dodałem biblioteki EclipseLink (JPA2.0) i stworzył klas encji ale kiedy używammenedżer jednostka nie ma metody getCriteriaBuilder()

javax.persistence.criteria.CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); 

otrzymuję następujący błąd

nie może odnaleźć symbol symbol: metoda getCriteriaBuilder() lokalizacji: interfejs javax.persistence.EntityManager

moim web.xml jest wersja 2.4 i tu jest mój persistence.xml

<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
    <persistence-unit name="MiraclinPU" transaction-type="JTA"> 
    <jta-data-source>jdbc/Miraclin</jta-data-source> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    <properties/> 
    </persistence-unit> 
</persistence> 

Wygląda aplikacji korzysta JPA1.0 jak czytam na forach ... Czy ktoś może pomóc?

+1

znajdź słoik o nazwie persistence-1.0.jar lub podobny, usuń go ze ścieżki klasy i zastąp go plikiem o nazwie persistence-2.0.jar lub podobnym. to wszystko –

+1

Znalazłem to w ogromnym JasperLib ejb3-persistence.jar, usunąłem całą bibliotekę i zadziałało ... dzięki. – Questionmark

+0

Nice. Teraz powinieneś napisać to jako odpowiedź i przyjąć tę odpowiedź. –

Odpowiedz

5

Wyszukaj we wszystkich bibliotekach uwzględnionych w projekcie i usuń te, które zawierają plik persistence.xml z wyjątkiem tego, którego potrzebujesz. Następnie ponownie je włącz.

0

masz plik ejb3-persistence.jar w swojej ścieżce klas.

Menedżer encji nie ma tej metody.

0

Brakujące

import javax.persistence.criteria.*; 

ewentualnie?

3

Zastosowanie:

<dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.0-api</artifactId> 
     <version>1.0.1.Final</version> 
    </dependency> 

A nie:

<dependency> 
     <groupId>javax.persistence</groupId> 
     <artifactId>persistence-api</artifactId> 
     <version>1.0.2</version> 
    </dependency> 
2

W Eclipse:

  • Project -> Właściwości - Budowa Ścieżka> Java -> Configure Build Path -> Biblioteki
  • usuń odniesienia do javax/persistente
  • wstawić odniesienie do hibernacji-WZP-2,0-API-/wersja /.jar

jak sprawdzić:

w prasie sourceDAO.java F3 w EntityManagerFactory i patrzeć co. Zaćmienie słoika otwarte.

Powiązane problemy