Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jakarta Data - Ein Überblick über den neuen Tei...

Dirk Weil
September 02, 2024

Jakarta Data - Ein Überblick über den neuen Teil der Jakarta EE

Slides zum Expertenkreis Java der GEDOPLAN vom 29.08.2024

Dirk Weil

September 02, 2024
Tweet

More Decks by Dirk Weil

Other Decks in Technology

Transcript

  1. Jakarta Data Ein Überblick über den neuen Teil der Jakarta

    EE Expertenkreis Java, 29.08.2024 GEDOPLAN GmbH
  2. Dirk Weil GEDOPLAN GmbH, Bielefeld GEDOPLAN IT Consulting Softwareentwicklung, Beratung,

    Konzepte, Reviews GEDOPLAN IT Training Java, JEE, Tools u.v.a.m. in Berlin, Bielefeld, on-site JEE seit 1999 Speaker und Autor 2 gedoplan.de Jakarta Data
  3. Jakarta Data https://jakarta.ee/specifications/data/1.0/ „Standardized Data Access with the Repository pattern”

    Add-on zu Jakarta Persistence oder Jakarta NoSQL 4 gedoplan.de @Entity public class Person { @Id private Integer id; private String name; private String firstname; @Repository public interface PersonRepository extends CrudRepository<Person, Integer> { long count(); Stream<Person> findByName(String name); Jakarta Data
  4. Jakarta Data 5 gedoplan.de DataRepository BasicRepository CrudRepository PersonRepository save findById,

    findAll delete, deleteById, deleteAll insert, insertAll update, updateAll Jakarta Data
  5. Jakarta Data Repository Interfaces können enthalten Lifecycle methods annotiert mit

    @Insert, @Update, @Delete, @Save Query methods @Query mit explizitem JDQL @Find oder @Delete; Methodenparameter bestimmen Where- Bedingung Spezielle Namens- konvention 6 gedoplan.de @Repository public interface PersonRepository extends DataRepository<Person, Integer> { @Insert void insertPerson(Person person); @Query("select count(x) from Person x") long countPersons(); @Find Person read(String name, String firstname); Stream<Person> findByName(String name); Jakarta Data
  6. Jakarta Data Kompatible Implementierungen Hibernate 6.6 Jakarta Persistence Annotation Processor

    Open Liberty 24.0.0.6 Jakarta Persistence Code-Generierung beim Deployment 7 gedoplan.de Jakarta Data
  7. Jakarta Data Einschränkungen 8 gedoplan.de Support for entity inheritance is

    not required by this specification. Support for embeddable classes and embedded fields is not required by this specification. However, every Jakarta Data provider is strongly encouraged to provide support for embeddable classes within its entity programming model. „ „ Support for entity associations is not required by this specification. „ Jakarta Data
  8. Jakarta Data Probleme / Bugs / Kinderkrankheiten Repository-Implementierungen basieren nicht

    auf EntityManager (für Jakarta Persistence) Merkwürdige Transaktionssteuerung (für lesende teilweise Zugriffe notwendig; schreibende funktionieren ohne) Lazy Loading faktisch unmöglich (kein TX-gebundener Persistenzkontext) Falsches Cascading (falsche Insert-Reihenfolge bei Assoziationen) @Table(name=…) wird ignoriert Repository-Implementierungen unvollständig (findById fehlt, count braucht explizites @Query, …) 9 gedoplan.de Jakarta Data
  9. Jakarta Data Fazit Vielversprechender Ansatz Interoperabel mit Jakarta Persistence und

    Jakarta NoSQL „Spring-Data-Magie“ für JEE Nicht ausgereift Nur für einfache Fälle nutzbar Buggy 10 gedoplan.de Jakarta Data