1 Minuten Lesezeit (236 Worte)

BEST-P: Find-By-Example

In Java-Enterprise-Anwendungen ist es sinnvoll, Zugriffe auf die Datenbank nach dem Design-Pattern Data Access Object in DAO-Klassen zu kapseln. Die Basis-CRUD-Operationen lassen sich in einer generischen Klasse unabhängig vom Entity-Typ definieren.  Aufwand entsteht durch die Implementierung von Find-Methoden, um Daten nach angegebenen Kriterien zu selektieren. Dieser Aufwand lässt sich durch die Verwendung des Design-Patterns Find-By-Example reduzieren.





Bei Find-By-Example werden Suchbegriffe in einem Example-Objekt angegeben. So kann nach einer beliebigen Kombination von Attributen gesucht werden. Auch wenn Hibernate oder EclipseLink Implementierungen eines Find-By-Example mitbringen verwenden wir in unseren Projekte eine Eigenimplementierung auf Basis von JPA. 

findByExample20170217.zip
33 kb

In unserem Find-By-Example ist die Example-Klasse ein einfaches Pojo. Es enthält die Attribute, nach denen gesucht werden soll. Wesentlich dabei ist die Übereinstimmung der Attributnamen zwischen Example- und Entity-Klasse. Folgende Möglichkeiten bietet unserer Find-By-Example-Implementierung.

  • Bei Zeichenketten kann mit '%' ein Muster angegeben werden. Beispiel: mit 'Ko%' wird nach Zeichenketten gesucht, die mit 'Ko' anfangen.
  • Bei Zahlen oder Datumsangaben lassen sich Relationen mit <, > <=, >= angeben. Beispiel: '>01.01.1970' sucht nach Datumsangaben, die nach dem 01.01.1970 liegen.
  • Bei Zahlen oder Datumsangaben lässt sich auch ein Intervall angeben. Beispiel '01.04.12016-31.12.2016' sucht nach Datumsangaben in dem angegebenen Intervall.
  • Einfache Assoziationen werden bei der Suche berücksichtigt. 

Die Implementierung haben wir hier in Form eines Maven-Projekts zum Download bereitgestellt. 

Principal Consultant bei ORDIX

 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Donnerstag, 25. April 2024

Sicherheitscode (Captcha)

×
Informiert bleiben!

Bei Updates im Blog, informieren wir per E-Mail.

Weitere Artikel in der Kategorie