Ich versuche, meine Java-Anwendung mehr standardkonform zu machen und eines der größten Probleme, die ich konfrontiert bin, ist der Übergang unserer ORM-Framework von Castor JDO zu einer JPA-Implementierung (denken entweder Hibernate oder DataNucleus). Wir haben unsere eigene Abstraktionsschicht für persistente Daten, so dass das grundlegende Refactoring einfach durch das Hinzufügen einer JPA-Implementierung zu unserer API und das Erstellen des Mappings durchgeführt werden kann. Dann wird es komplizierter, denn wir verwenden Castor OQL, zwar nicht in großem, aber doch in nicht unerheblichem Maße, und das ist nicht abstrahiert. Wir machen auch rohe JDBC-Abfragen direkt an die Datenbank, aber gehen durch Castor, um die Verbindung zu erhalten. Wir verwenden ehcache, um unsere Objekte auf mehreren Servern zwischenzuspeichern.
Fragen:
1) Gibt es generell irgendwelche signifikanten Unterschiede in der Art und Weise, wie Castor und JPA perstente Objekte behandeln, auf die ich achten sollte?
2) Bietet die JPA-Abfragesprache ähnliche Funktionen wie Castors OQL, oder muss ich mich mit JDO beschäftigen?
3) Kann ich ecache mit beliebigen JPA-Implementierungen verwenden?
4) Kennt jemand ein Tool, das Castor Mapping in JPA Mapping konvertieren kann?
Und zum Schluss noch ein paar Gedanken zu den Stärken der verschiedenen JPA-Implementierungen? Hibernate ist attraktiv, weil es so weit verbreitet ist, aber mein größtes Anliegen ist die Einfachheit, so vielleicht DataNucleas, EclipseLink (oder etwas anderes) könnte mir besser dienen?
danke,
peter cowan