Kurze Hintergrundinformationen für den Kontext: Ich schreibe ein relativ kleines Tool für eine kleine Gaming-Community zum Herunterladen und Verwalten von UGC. Es handelt sich um ein modulares Java 24 + JavaFX-Projekt, das mit Maven und IntelliJ erstellt wurde.
Ich speichere Daten in einer SQLite-Datenbank. Bisher habe ich Bare-Metal-JDBC verwendet und selbst Abfragen geschrieben. Da das Tool wächst, möchte ich den DB-Zugriff vereinfachen. Bei der Arbeit verwenden wir Hibernate ORM in einer Jakarta EE-Umgebung mit Jakarta Contexts und Dependency Injection (CDI) usw., aber ich habe gelesen, dass Sie Hibernate verwenden können, ohne auf Dependency Injection angewiesen zu sein.
Also habe ich Hibernate für mein Tool ausprobiert und es funktioniert gut in meiner Entwicklungsumgebung. Beim Versuch, einen Build über jlink zu packen, treten Probleme auf, insbesondere bei der Verwendung des javafx-maven-plugin, um die Sache für mich viel einfacher zu machen.
Der Nachteil ist, dass Hibernate nicht modularisiert zu sein scheint. Das heißt, ich kann es nicht einfach mit jlink verpacken. Beim Ausführen von mvn javafx:jlink wird gemeldet, dass „automatisches Modul nicht mit jlink verwendet werden kann“.
Ich habe dann EclipseLink als alternative Jakarta Persistence (JPA)-Implementierung ausprobiert, hatte keine Probleme mit automatischen Modulen, aber andere Ressourcen wurden offenbar nicht richtig mit jlink gepackt. Insbesondere schienen einige Gebietsschema-Ressourcen zu fehlen, als versucht wurde, die gepackte App zu starten, sodass sie im endgültigen Paket weggelassen wurden.
Der letzte Ausweg wäre, einige SQL-First-Bibliotheken wie jOOQ auszuprobieren, um es zumindest erträglicher als einfaches JDBC zu machen. Aber ich würde wirklich einen Jakarta Persistence/ORM-Ansatz bevorzugen, um die Datenbankverwaltung so einfach und schmerzlos wie möglich zu halten.
Hat jemand einen Arbeitsansatz, den ich für meinen Fall verwenden kann? Oder teilen Sie Ihr Setup mit, das tatsächlich für Sie funktioniert? Oder einen Weg finden, eine Jakarta Persistence-Implementierung so zu gestalten, dass sie gut mit dem Modulsystem und Maven/JLink funktioniert? Der Grund, warum ich diese verwende, ist, dass das Packen wirklich so einfach ist wie das Aufrufen eines einzelnen Maven-Ziels, und das hat größtenteils sehr gut funktioniert. Vor allem aus diesem Grund zögere ich, mich auf eine andere Verpackungsmethode einzulassen, wie das andere jlink-Maven-Plugin oder etwas wie jpackage, deren Konfiguration und Inbetriebnahme sehr mühsam zu sein scheint.
Integration einer Jakarta Persistence-Implementierung mit der modularen JavaFX/Maven/JLink-App ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post
Mobile version