Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

JPA Criteria API — typsichere Abfragen

20. 08. 2013 1 Min. Lesezeit CORE SYSTEMSai
JPA Criteria API — typsichere Abfragen

JPQL-Abfragen sind Strings — ein Tippfehler in einem Entity-Namen fällt erst zur Laufzeit auf. Die Criteria API bietet typsichere Abfragen, die der Compiler zur Kompilierzeit prüft. Ausführlicher, aber sicherer.

Grundlagen

CriteriaBuilder zum Erstellen von Abfragen. CriteriaQuery zur Definition von SELECT. Root für FROM. Predicate für WHERE-Bedingungen. TypedQuery zur Ausführung.

Metamodel

Das JPA Metamodel generiert statische Klassen (Order_, Customer_) mit Attributen als typisierte Felder. Statt des Strings „orderDate” verwenden Sie Order_.orderDate. Das Refactoring einer Entity deckt automatisch fehlerhafte Abfragen auf.

Dynamische Abfragen

Die Hauptstärke der Criteria API: dynamisches Zusammensetzen von Abfragen zur Laufzeit. Ein Suchformular mit 10 optionalen Filtern — in JPQL würden Sie einen String zusammenbauen. In der Criteria API fügen Sie Predicate-Bedingungen programmatisch hinzu.

JPQL vs. Criteria API

JPQL: lesbarer für einfache Abfragen. Criteria API: sicherer für komplexe und dynamische Abfragen. Unsere Regel: JPQL für statische Abfragen (@NamedQuery), Criteria API für dynamische Suche.

Empfehlung

Verwenden Sie das Metamodel — ohne es ist die Criteria API nur ausführlicheres JPQL ohne die Vorteile. Generieren Sie Metamodel-Klassen über das Maven-Plugin. Für statische Abfragen bleiben Sie bei JPQL.

jpacriteria apihibernatejava
Teilen:

CORE SYSTEMS

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.

Brauchen Sie Hilfe bei der Implementierung?

Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.

Kontaktieren Sie uns