Enterprise Orta

JPA ile Jakarta Data Karşılaştırması

Bir repository arayüzü tanımlayın ve Jakarta Data'nın DAO uygulamasını otomatik olarak oluşturmasına izin verin.

✕ 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);
}
Bu kodda bir sorun mu gördünüz? Bize bildirin.
🪄

Sıfır şablon kod

Arayüzü tanımlayın; kapsayıcı dağıtım zamanında tam DAO uygulamasını üretir.

🔍

Türetilmiş sorgular

findByNameAndStatus gibi yöntem adları otomatik olarak ayrıştırılır — JPQL veya SQL gerekmez.

🔌

Taşınabilir

Jakarta EE 11 uyumlu herhangi bir çalışma ortamı, satıcı bağımlılığı olmadan repository uygulamasını sağlar.

Eski Yaklaşım
JPA EntityManager
Modern Yaklaşım
Jakarta Data Repository
JDK'dan itibaren
21
Zorluk
Orta
JPA ile Jakarta Data Karşılaştırması
Mevcut

Jakarta EE 11 / Java 21'den itibaren kullanılabilir (2024)

Jakarta Data (Jakarta EE 11), veri erişimini saf bir arayüz bildirimine dönüştürür. Bir arayüzü @Repository ile açıklarsınız ve CrudRepository gibi yerleşik bir repository türünü genişletirsiniz. Çalışma zamanı, findByName gibi yöntem adlarından türetilmiş sorgular dahil uygulamayı üretir — dolayısıyla EntityManager şablon kodu, JPQL dizeleri ve elle yazılmış save/find yöntemleri yoktur.

Paylaş 𝕏 🦋 in