2010-10-22 21 views
56

Próbuję znaleźć samouczek interfejsu API JPA Kryteria, ale nie odniosłem dużego sukcesu. Czy znasz jakieś dla początkujących? Chciałbym zacząć używać go w aplikacji Java5/Maven do budowania złożonych zapytań.Samouczek dotyczący kryteriów JPA

+1

współczynnik korelacji między poza tematu i przydatność == 1,0 – HDave

Odpowiedz

95

Dynamic, typesafe queries in JPA 2.0 artykuł jest bardzo dobry na ten temat, rzeczywiście najlepszy znalazłem dotąd Online, nawet lepiej niż Chapter 23 Using the Criteria API to Create Queries od Java EE 6 tutoriali (który zawiera jakieś błędy).

+2

@HDave Oracle EE7 związek API Kryteria zmienił się [https://docs.oracle.com/ javaee/7/tutorial/persistence-criteria.htm # GJITV] (https://docs.oracle.com/javaee/7/tutorial/persistence-criteria.htm#GJITV) – skomisa

12

Przykłady typowych zapytań są here

Wszystkie przykłady są w tej formie:

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(); 

Jeśli rozważa również inne technologie, należy poważnie rozważyć querydsl. Główne zalety w porównaniu do kryteriów obejmują krótszy kod, dobrą czytelność i podobną składnię do zwykłego sql.

kod

Przykład QueryDSL tutaj:

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

Twój pierwszy przykład rzuca "Brak wyraźnego wyboru i domyślnie nie można było określić "exeption – Irakli

+0

' .where ('nawias otwarty tutaj nie zamyka się. – Alex78191

Powiązane problemy