2012-04-24 17 views
5

estoy introduciendo JPA2.0 en mi solicitud de trabajo en la base de datos Oracle9i y yo añadió el EclipseLink bibliotecas (JPA2.0) y creó las clases de entidad, pero cuando usogestor de la entidad no tiene método getCriteriaBuilder()

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

me sale el siguiente error

no puede encontrar el símbolo símbolo : método getCriteriaBuilder() ubicación: interfaz javax.persistence.EntityManager

mi web.xml es la versión 2.4, y aquí es mi 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> 

Parece que la aplicación utilice JPA1.0 como he leído en los foros ... ¿Alguien puede ayudar?

+1

busque un archivo llamado persistence-1.0.jar o similar, elimínelo del classpath y reemplácelo por uno llamado persistence-2.0.jar o similar. eso es todo –

+1

Lo encontré en un enorme JasperLib ejb3-persistence.jar, eliminé toda la biblioteca y funcionó ... gracias. – Questionmark

+0

Agradable. Ahora debe escribir eso como una respuesta y aceptar esa respuesta. –

Respuesta

5

Busque en todas las bibliotecas que están incluidas en su proyecto y elimine las que contienen persistence.xml excepto la que necesita. Luego vuelve a incluirlos.

0

tiene el ejb3-persistence.jar en su classpath.

su administrador de entidad no tiene este método.

0

Missing

import javax.persistence.criteria.*; 

posiblemente?

3

Uso:

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

Y no:

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

en Eclipse:

  • Proyecto -> Propiedades -> Java Build Path -> Configurar Build Path -> Bibliotecas
  • eliminar referencias a javax/persistente
  • insertar una referencia a hibernar-APP-2,0-API-/versión /.jar

cómo verificar:

en su prensa sourceDAO.java F3 en EntityManagerFactory y mira lo. jar eclipse abierto.

Cuestiones relacionadas