API Criteria

Die API Criteria ist eine API für das Erstellen von Abfragen mit Java™-Objekten als Alternative zur Erstellung von Zeichenfolgen für JPQL-Abfragen (Java Persistence Query Language).

Die API "Criteria" bietet die Möglichkeit, Abfragen zur Laufzeit dynamisch zu erstellen. Ferner ermöglicht die API die Erstellung von typsicheren Abfragen, die vom Compiler überprüft werden können. Der Compiler ist nicht in der Lage, JPQL-Abfragen auf Richtigkeit zu überprüfen. Diese Überpüfung muss zur Laufzeit während der Testphase erfolgen.

Es folgt ein Beispiel für eine JPQL-Abfrage, bei der eine Liste von Mitarbeitern mit weniger als 5 Jahren Dienstzeit zurückgegeben wird:
SELECT e FROM Employee e WHERE e.serviceyears < 5
Es folgt ein Beispielausgabe der entsprechenden Abfrage mit der API Criteria:
QueryBuilder qb = emf.getQueryBuilder();
CriteriaQuery q = qb.create(Employee.class);
Root e = q.from(Employee.class);
q.where(qb.lt(e.get(Employee_.serviceyears), 5));
TypedQuery tq = em.createQuery(q);
List result = q.getResultList();
Anmerkung: "Employee_" ist ein Metamodell der Klasse "Employee".
Die API Criteria bietet zwei wichtige Features, die Verbesserungen gegenüber JPQL darstellen:
  • Die API Criteria kann Abfragen ausdrücken, die mit JPQL nicht möglich sind. Ausführliche Informationen finden Sie im Abschnitt "Editable data store expressions" des developerWorks-Artikels "Dynamic, typesafe queries in JPA 2.0".
  • Eine CriteriaQuery kann programmgesteuert bearbeitet werden. Weitere Informationen hierzu finden Sie im Abschnitt "Editable query" des developerWorks-Artikels "Dynamic, typesafe queries in JPA 2.0".

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rejb_criteriaapi
Dateiname:rejb_criteriaapi.html