Inventage Tech-RadarInventage Tech-Radar
Trial

Bisher wurde jOOQ bei Inventage noch in keinem Projekt eingesetzt. Wir sehen jedoch einige vielversprechende Anwendungsfälle:

  • Als Backend für GraphQL-APIs, um ausgehend von GraphQQL-Queries dynamische SQL-Queries zusammenzustellen.
  • Für die Ablösung von Legacy-Technologien, die nur schwer auf JPA oder ähnliche Technologien umgestellt werden können.
  • Als Grundlage für ein neues Regelwerk, um Datenbank-Zugriffe mit rollenbasierten Filterkriterien automatisch zu schützen, ähnlich unserer bewährten SecurityEngine.
  • Als Unterstützung in Projekten, die bereits JPA einsetzen, um Anforderungen umzusetzen, die mit JPQL schwierig zu meistern sind.
Trial

JPA und Hibernate sind De-facto-Standards für Datenbank-Zugriffe in Java, auch bei Inventage. Mit steigender Komplexität von Datenbankabfragen wächst aber auch die Schwierigkeit beim Formulieren derselben in der zur Verfügung stehenden Criteria API. Greift man auf Native Queries zurück, verliert man die Typsicherheit.

jOOQ (Java Object Oriented Querying) bietet eine Java DSL, die sehr eng an SQL angelehnt ist und auch herstellerspezifische SQL-Statements unterstützt. So können Datenbank-Abfragen typsicher und direkt in Java formuliert werden.

Bisher wurde jOOQ bei Inventage noch in keinem Projekt eingesetzt. Erste Evaluationen waren jedoch vielversprechend, sodass wir uns entschieden haben, diese Library dem Ring "Testen" zuzuordnen und auch einmal in einem Projekt einzusetzen, um mehr Erfahrung damit zu sammeln. Ein mögliches Vorgehen könnte sein, jOOQ für komplexere Reporting- und Batch-Processing-Tasks zu verwenden, während die typischen CRUD-Tasks weiterhin mit JPA als OR-Mapper umgesetzt werden.