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.
@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);
}
@Repository
public interface Users extends CrudRepository<User, Long> {
List<User> findByName(String name);
}
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.
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.