Ich stimme @Timo zu. Die einzige andere Erkenntnis, die ich hinzufügen / erweitern möchte, ist, dass ORM eine andere Semantik hat als der reine SQL-Zugriff auf Ihre Daten.
Der Zweck von ORM besteht darin, die Tatsache, dass sich Ihre Daten überhaupt in einer Datenbank befinden, so weit wie möglich zu abstrahieren. Wenn Sie ORM richtig verwenden, werden alle Persistenzoperationen in einer (hoffentlich) dünnen Schicht behandelt. Ihre Modellobjekte haben wenig bis keinen Persistenzcode. Die Tatsache, dass Sie ORM verwenden, sollte für Ihr Modell unsichtbar sein.
Aus diesem Grund ist ORM sehr gut darin, Ihnen das Leben für bestimmte Arten von Operationen zu erleichtern, nämlich für einfache CRUD-Operationen. Sie können Ihre Modellobjekte ganz einfach laden, präsentieren, aktualisieren und löschen. Dies erleichtert Ihnen das Leben, da Sie beim Zugriff auf Ihre Daten Modellobjekte zurückerhalten, auf die Sie Geschäftslogik schreiben können. Wenn Sie JDBC verwenden, müssen Sie Ihre Objektinstanzen aus den Daten "hydratisieren", was kompliziert und fehleranfällig sein kann.
ORM ist nicht immer die beste Wahl. JPA ist ein Werkzeug für einen Job. Wenn das Werkzeug für den Job nicht ausreicht, möchten Sie ein besseres Werkzeug finden. Zum Beispiel hatte ich ein Szenario, in dem ich ein gesamtes Objektdiagramm kopieren und eine neue Kopie dieser Objekte speichern musste. Wenn ich ORM verwendet hatte (wie ich es versucht hatte), musste ich alle Objekte aus der Datenbank laden, sie kopieren und dann die neuen Objekte speichern. Ich habe viel zu lange gebraucht.
Die bessere Lösung bestand einfach darin, jdbc-basierte Operationen zu verwenden und SQL-Aufrufe über Select einzufügen, um die neuen Zeilen zu erstellen. Es war schnell, der Code war einfacher.
Die andere zu berücksichtigende Sache ist, dass Sie mit JDBC vertraut sind und Fristen haben, Sie müssen nicht auf den ORM-Zug springen. Die Spring JdbcTemplate-Klassen sind äußerst leistungsfähig und hilfreich. Manchmal ist das beste Werkzeug für den Job das, das Sie kennen. Sie sollten sich mit ORM vertraut machen, aber nicht unbedingt für ein Projekt mit hohen Erwartungen. Es gibt viel zu lernen und es ist nicht trivial - wirklich tauschen Sie eine Reihe von Komplexitäten mit einer anderen aus, wenn Sie sich für jdbc vs orm entscheiden.