Enterprise Fortgeschritten

Deklariere ein Repository-Interface und lass Jakarta Data die DAO-Implementierung automatisch generieren.

✕ Jakarta EE 8+
@PersistenceContext
EntityManager em;

public User findById(Long id) {
    return em.find(User.class, id);
}

public List<User> findByName(String name) {
    return em.createQuery(
        "SELECT u FROM User u WHERE u.name = :name",
        User.class)
        .setParameter("name", name)
        .getResultList();
}

public void save(User user) {
    em.persist(user);
}
✓ Jakarta EE 11+
@Repository
public interface Users extends CrudRepository<User, Long> {
    List<User> findByName(String name);
}
Problem mit diesem Code entdeckt? Sag uns Bescheid.
🪄

Null Boilerplate

Deklariere das Interface; der Container generiert die vollständige DAO-Implementierung zur Deployment-Zeit.

🔍

Abgeleitete Abfragen

Methodennamen wie findByNameAndStatus werden automatisch geparst — kein JPQL oder SQL nötig.

🔌

Portabel

Jede Jakarta-EE-11-konforme Laufzeitumgebung stellt die Repository-Implementierung ohne Vendor-Lock-in bereit.

Alter Ansatz
JPA EntityManager
Moderner Ansatz
Jakarta-Data-Repository
Seit JDK
21
Schwierigkeitsgrad
Fortgeschritten
JPA versus Jakarta Data
Verfügbar

Verfügbar seit Jakarta EE 11 / Java 21 (2024)

Jakarta Data (Jakarta EE 11) wandelt den Datenzugriff in eine reine Interface-Deklaration um. Du annotierst ein Interface mit @Repository und erweiterst einen eingebauten Repository-Typ wie CrudRepository. Die Laufzeitumgebung generiert die Implementierung — einschließlich abgeleiteter Abfragen aus Methodennamen wie findByName — sodass kein EntityManager-Boilerplate, keine JPQL-Strings und keine handgeschriebenen save/find-Methoden nötig sind.

Teilen 𝕏 🦋 in