2010-10-22 4 views
56

Ho cercato di trovare un tutorial API Criteri JPA ma non ho avuto molto successo. Ne conosci qualcuno per i principianti? Mi piacerebbe iniziare a usarlo in un'app Java5/Maven per creare query di ricerca complesse.Tutorial criteri JPA

+1

coefficiente di correlazione tra fuori tema e == utilità 1,0 – HDave

risposta

95

L'articolo Dynamic, typesafe queries in JPA 2.0 è molto buono su questo argomento, in realtà il migliore che ho trovato finora linea, anche meglio del Chapter 23 Using the Criteria API to Create Queries dalle Java EE 6 tutorial (che contiene alcuni errori).

+2

@HDave collegamento EE7 Oracle alla API Criteria è cambiato [https://docs.oracle.com/ javaee/7/tutorial/persistence-criteria.htm # GJITV] (https://docs.oracle.com/javaee/7/tutorial/persistence-criteria.htm#GJITV) – skomisa

12

Esempi di query comuni sono here

Tutti gli esempi sono in questa 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(); 

Se state prendendo in considerazione anche altre tecnologie si dovrebbe prendere seriamente in considerazione querydsl. I principali vantaggi rispetto ai criteri includono codice più breve, buona leggibilità e sintassi simile a SQL regolare.

codice

Esempio QueryDSL qui:

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

il tuo primo esempio genera "Nessuna selezione esplicita e un implicitamente non si può determinare "l'eccezione – Irakli

+0

' .where ('la parentesi aperta qui non si chiude. – Alex78191