2009-10-16 12 views

Respuesta

0

JPA no proporciona una API de criterios como en Hibernate. Pero puede usar ejb3criteria, una biblioteca que proporciona una API basada en el diseño de la API de Hibernate Criteria para EJB3 Persistence. ejb3criteria se puede usar con cualquier implementación de Persistencia EJB3.

+0

¡Gracias, es exactamente lo que necesito! ¿Alguna vez has probado? – user132371

+0

Probado, sí; usado en producción, no. Esto solo significa que no lo usé mucho, pero no digo "no lo use en producción". –

7

Una de las nuevas características introducidas en el JPA 2.0 es la API de Criteria. Es necesario una de las implementaciones JPA2:

Criterios se accede a consultas a través de la EntityManager.getCriteriaBuilder() y ejecutado a través de la API de consulta normal.

EntityManager em = ...; 
CriteriaBuilder qb = em.getCriteriaBuilder(); 
CriteriaQuery<Employee> query = qb.createQuery(Employee.class); 
Root<Employee> employee = query.from(Employee.class); 
query.where(qb.equal(employee.get("firstName"), "Bob")); 
List<Employee> result = em.createQuery(query).getResultList(); 
+0

Es cierto. Pero eso no es parte de JPA 1.0/EJB 3.0 de lo que se trataba la pregunta. –

1

JPA 2 (que proporciona la API criterios) se definió en JSR 317 que puede ser considerado como sucesor de JSR 220 (el EJB especificación original/JPA). De ahí su comentario "Es cierto. Pero eso no es parte de JPA 1.0/EJB 3.0 de lo que se trataba la pregunta". es irrelevante ya que puede usar JPA 2 indistintamente en todos los servidores de aplicaciones comunes (WebLogic, JBOSS, Glassfish, etc.). Los proyectos de campo verde utilizarán JPA 2.0 o posterior. Encontrará muchos proyectos implementados utilizando JPA 1, pero la mayoría de las empresas están en el proceso de reemplazar el marco de JPA 1.

Cuestiones relacionadas