Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

JPA-Buddy Plugin für IntelliJ

Was ist JPA-Buddy?

JPA-Buddy ist ein IntelliJ-Plugin, das sowohl Einsteiger als auch auf erfahrene Entwickler bei der Arbeit mit JPA und entsprechenden Technologien wie Spring Data, Flyway, Liquibase, Lombok und Mapstruct unterstützen soll.

Das Plugin kann neben Entity- und DTO-Klassen auch Mapper generieren und erweitern, sowie Migrationsskripte und Spring Data JpaRepositories erzeugen.

Nach der Installation fügt sich das Plugin sehr gut in die IDE ein. Man hat zu keinem Zeitpunkt das Gefühl, dass das Plugin stört oder einen mit vollem Umfang direkt erschlägt.

Wie das? Indem es nur die Funktionen bereitstellt, die im Projekt nutzbar sind. Hat man z.B. keine Dependencies für Lombok oder Validation-API, werden manche Menüs gar nicht erst angezeigt.

In diesem Post werfen wir einen Blick auf einen Teil der vom JPA-Buddy bereitgestellten Features.

Dazu schreiben wir einen kleinen Spring Boot-Service mit Zugriff auf die Datenbank. JPA-Buddy unterstützt dabei bei Erzeugung der Datenbank Entities, DB-Migrationsskripten, DTOs, Mappern sowie JpaRepositories.

Erzeugen von Entities aus einer bestehenden Datenbank

Erstellen von Migrationsskripten

DTO- & Mapper-Generierung

Spring Data JpaRepository

Fazit

Erzeugen von Entities aus einer bestehenden Datenbank

Ausgangspunkt für den Service ist eine Oracle-Datenbank, die die Tabellen T_ORDER und T_CUSTOMER enthält. Für diese wollen wir im Service Entities generieren. Damit das funktioniert, legen wir zunächst eine Datasource an. Anschließend wählen wir auf Package-Ebene via Kontext-Menü „JPA Entities from DB“ aus.

Nach kurzer Synchronisierung mit der Datenbank sehen wir alle Tabellen, die im gewählten Schema sichtbar sind. Hier können die für den Service relevante Tabellen ausgewählt, Beziehungen hergestellt und sowohl Package- als auch Klassennamen vergeben werden.

Wird Lombok eingesetzt, werden Getter und Setter gleich weggelassen und durch entsprechende Annotations ersetzt. Auch die Validation-API wird direkt mit integriert.

Im Entity selbst erweitert das Plugin  die Ansicht um Funkionen des JPA-Designer, mit dem sich weitere Einstellungen vornehmen lassen.

Erstellen von Migrationsskripten

Für unsere eben erzeugten Entities können wir Datenbank-Skripte generieren lassen. Dabei sind sowohl klassische SQL- oder bei entsprechend verwendeten Dependencies Liquibase- / Flyway-Skripte möglich. In unserem Beispiel generieren wir ein SQL-Skript. Das Vorgehen ist bei allen Möglichkeiten identisch. Es lassen sich sowohl Initial- als auch Update-Skripte erzeugen.

Dabei wird der bestehende Code mit der Datenbank synchronisiert und die Änderungen im Skript festgehalten.

DTO- & Mapper-Generierung

Weiter geht es mit DTO-Klassen und Mappern. Dazu öffnen wir eine der Klassen – z.B. TCustomer und wählen die Option „Create DTO“.
Im nachfolgenden Fenster können wir das Zielpackage definieren, in DTO enthaltene Attribute auswählen, Validierungen mit aufnehmen und weitere Einstellungen vornehmen. Sofern Mapstruct im Einsatz ist, lassen sich in diesem Fenster auch Mapper direkt mitkonfigurieren.

Spring Data JpaRepository

Zu guter Letzt erstellen wir ein Spring Data JpaRepository. Das Vorgehen ist dabei identisch wie beim Erzeugen von DTO-Klassen. Entity aufmachen und die Option „Create Spring Data Repository“ auswählen.

Auch hier lassen sich zahlreiche Einstellungen tätigen – für unser Beispiel wählen wir oben rechts „Bulk“ statt „Single“ aus, damit wir gleichzeitig für alle Entities Repositories generieren können.

Für die Nutzung der Repositories bietet JPA-Buddy noch weitere starke Features. Eines davon ist, dass Repositories von überall um Methoden erweitert werden können.

Ein Beispiel – der Service soll um eine neue Suche erweitert werden, mit der man nach Kunden suchen kann, die in einem bestimmten Zeitraum Bestellungen durchgeführt haben, absteigend nach Datum sortiert. Der Username soll dabei mit einer Like-Suche erfolgen und nicht Case-Sensitive sein.

Die Syntax direkt fehlerfrei aus dem Kopf zu zaubern ist schwierig. Der lange Methodenname steigert zudem die Fehlerquote. Mit JPA-Buddy kein Problem. Einfach an der Stelle wo der Aufruf benötigt wird via Code Completion die benötigte Methode generieren lassen – im Beispiel eine find-Methode.

Im nachfolgenden Fenster lassen sich alle gewünschten Suchparameter einstellen.

Das Ergebnis überzeugt ist aber schwer lesbar und schwer zu verstehen. Eine Query ist an dieser Stelle die bessere Wahl. Auch hierfür bietet JPA-Buddy eine Lösung, in Form von Query-Extraction.

Dadurch kann der Methodenname angepasst werden und die Suche wird in eine JPQL Query extrahiert.

Fazit

In diesem Blogpost haben wir gezeigt, wie gut das JPA-Buddy Plugin in IntelliJ integriert ist. Während des gesamten Beispiels mussten nur wenige Zeilen Code geschrieben werden. Die meiste Arbeit hat das Plugin abgenommen. Die sinnvollen Features unterstützen alle Entwicklerstufen und vereinfachen den Einstieg in die JPA-Welt. Auch das gezielte Weglassen von Features, die nicht im Projekt konfiguriert sind, trägt der einfachen Handhabung bei.

In der Gratis-Version sind bereits viele der Features enthalten. Sind IntelliJ Spring Data und JPA im Einsatz lohnt sich das Plugin auf jeden Fall!

Die Lizenz lohnt sich vor allem dann, wenn man viel mit Liquibase / Flyway unterwegs ist bzw. oft Migrationsskripte schreiben muss oder viel mit der Kombination aus Entities, DTO und Mappern unterwegs ist. Z.B. am Anfang eines Projektes, wo das Datenmodell erstellt wird, erspart das Plugin eine Menge Zeit und damit auch Geld.

Für diejenigen, die das Plugin in Aktion sehen wollen, gibt es eine 15-minütige Aufzeichnung:

Quellen:

https://www.baeldung.com/jpa-buddy

https://plugins.jetbrains.com/plugin/15075-jpa-buddy

Der Beitrag JPA-Buddy Plugin für IntelliJ erschien zuerst auf Business -Software- und IT-Blog - Wir gestalten digitale Wertschöpfung.



This post first appeared on DoubleSlash IT Business Und Software, please read the originial post: here

Share the post

JPA-Buddy Plugin für IntelliJ

×

Subscribe to Doubleslash It Business Und Software

Get updates delivered right to your inbox!

Thank you for your subscription

×