2010-10-22 11 views
56

He estado tratando de encontrar un tutorial API de Criterios JPA pero no he tenido mucho éxito. ¿Conoces alguno para principiantes? Me gustaría comenzar a usarlo en una aplicación Java5/Maven para crear consultas de búsqueda complejas.Tutorial de Criterios JPA

+1

coeficiente de correlación entre fuera de tema y utilidad == 1.0 – HDave

Respuesta

95

El artículo Dynamic, typesafe queries in JPA 2.0 es uno muy bueno sobre este tema, en realidad el mejor que he encontrado hasta ahora línea, incluso mejor que el de los Chapter 23 Using the Criteria API to Create Queries Java EE 6 tutoriales (que contiene algunos errores).

+2

@HDave enlace EE7 de Oracle a la API Criteria ha cambiado a [https://docs.oracle.com/ javaee/7/tutorial/persistence-criteria.htm # GJITV] (https://docs.oracle.com/javaee/7/tutorial/persistence-criteria.htm#GJITV) – skomisa

12

Ejemplos de consultas comunes son here

Todos los ejemplos son en esta forma:

CriteriaBuilder cb = em.getCriteriaBuilder(); 

// Query for a List of objects. 
CriteriaQuery cq = cb.createQuery(); 
Root e = cq.from(Employee.class); 
cq.where(cb.greaterThan(e.get("salary"), 100000)); 
Query query = em.createQuery(cq); 
List<Employee> result = query.getResultList(); 

Si también está considerando otras tecnologías usted debería considerar seriamente querydsl. Las principales ventajas sobre los criterios incluyen código más corto, buena legibilidad y sintaxis similar a sql regular.

código

Ejemplo QueryDSL aquí:

JPAQuery query = new JPAQuery(entityManager); 
List<Person> persons = query.from(person) 
    .where(
    person.firstName.eq("John")),   
    .list(person); 
+0

su primer ejemplo arroja "No hay selección explícita y una implícito no se pudo determinar "excepción – Irakli

+0

' .where ('el corchete que se abre aquí no se cierra. – Alex78191

Cuestiones relacionadas