JPA Tabellen mit reservierten Nummernkreisen

Nichts ist schlimmer als die Verwendung von alten Datenbanken, die in der Vergangenheit von Hand gepflegt wurden. Häufig ist sehr viel Kreativität gefragt, um auf der existierenden relationalen Struktur, geeignete JPA Entitäten zu erstellen. Ein weiteres Ärgernis, sind dann aber auch die Primärschlüssel der Entität, die in der Vergangenheit nicht durch einen strengen Generator erzeugt wurden, sondern frei gewählt wurden.

Enum Sets in JPA Entities speichern

Wer ein Attribut in seiner Entity speichern möchte, das ein Set von Enum Werten enthält, kann dies in JPA sehr einfach realisieren. Manchmal fragen einen die Kollegen dann aber doch, ob es nicht andere Wege gibt, ohne eine zusätzliche Tabelle zu verwenden.

Konventionen achten mit SpringPhysicalNamingStrategy

Wer als Java Entwickler mit Datenbank Experten zusammenarbeiten darf, kennt deren Hinwendung zu großgeschrieben Bezeichnern. Da heißen die Tabellen dann ANCESTOR_TREE und die Attribute NAME, DESCRIPTION, CREATED_BY. Diese Namenskonvention gilt in Java aber nur für die Namen von Konstanten, weder für die Namen von Klassen noch ihrer Instanz-Attribute.

Blättern mit Spring HATEOAS

In den Beiträgen REST in Peace und REST heißt HATEOAS wurde schon auf die Möglichkeiten des HATEOAS Patterns hingewiesen. Die Verlinkung von Resourcen nutzen um innerhalb der Client Anwendung das notwendige Wissen um die Server API zu reduzieren, entkoppelt Systeme und vereinfacht die Entwicklung und Wartung. Auch in diesem Beitrag wird es um die Implementierung … Weiterlesen

Caching und Spring Data JPA

Im Zuge der Implementierung einer Restschnitstelle für die Verwaltung von Ahnenfoschungsvereinen kam die Frage auf, ob man die Datenbankabfragen nicht cachen könnte. Da der Bestand an solchen Vereinen sich selten verändert, liefert dieser Mikroservice fast immer identische Ergebnisse.

Persistieren von Enums mit JPA

Die Java Enums sind für jeden Software Entwickler ein Segen, verhindern sie doch an vielen Stellen feherhafte Zuweisungen von Konstanten. Erstaunlicherweise werden sie in ihrer Natur als Konstanten nicht immer akzeptiert.

Rest mit Spring Data JPA Projections

Die Entwicklung von Rest Schnittstellen mit Spring Boot wird durch viele Features des Frameworks begünstigt. Insbesondere durch die einfache Umsetzung der Rest Controller mit Hilfe einer Vielzahl von Annotationen und die Persistenz mit Spring Data JPA.

Während die Persistenzschicht mit ihren Repositories auf Entity Klassen arbeitet, werden vom Rest Controller DTOs verwenden. Entities und DTO arbeiten auf der Grundlagen identischer Domänenobjekte, unterscheiden sich aber zwangsläufig durch ihre sehr unterschiedliche Nutzung. So besitzen Entities häufig Attribute zur Speicherung des Änderungsdatums und eines eindeutigen Datenbankschlüssels.