Enterprise İleri

JDBC ResultSet Eşleme ile JPA Criteria API Karşılaştırması

Dinamik sorgular için manuel JDBC ResultSet eşlemesini JPA'nın tür-güvenli Criteria API'siyle değiştirin.

✕ Java EE
String sql = "SELECT * FROM users"
    + " WHERE status = ? AND age > ?";
try (Connection con = ds.getConnection();
     PreparedStatement ps =
             con.prepareStatement(sql)) {
    ps.setString(1, status);
    ps.setInt(2, minAge);
    ResultSet rs = ps.executeQuery();
    List<User> users = new ArrayList<>();
    while (rs.next()) {
        User u = new User();
        u.setId(rs.getLong("id"));
        u.setName(rs.getString("name"));
        u.setAge(rs.getInt("age"));
        users.add(u);
    }
}
✓ Jakarta EE 8+
@PersistenceContext
EntityManager em;

public List<User> findActiveAboveAge(
        String status, int minAge) {
    var cb = em.getCriteriaBuilder();
    var cq =
        cb.createQuery(User.class);
    var root = cq.from(User.class);
    cq.select(root).where(
        cb.equal(root.get("status"), status),
        cb.greaterThan(root.get("age"), minAge));
    return em.createQuery(cq).getResultList();
}
Bu kodda bir sorun mu gördünüz? Bize bildirin.
🔒

Tür-güvenli sorgular

Criteria oluşturucusu, alan adı ve tür uyumsuzluklarını derleme zamanında yakalar.

🗺️

Otomatik eşleme

JPA, sonuç satırlarını entity nesnelerine eşler — sütun bazında manuel çıkarma yok.

🧩

Birleştirilebilir koşullar

Dinamik where koşulları, and(), or() ve yeniden kullanılabilir Predicate nesneleriyle temiz biçimde oluşturulur.

Eski Yaklaşım
JDBC ResultSet
Modern Yaklaşım
JPA Criteria API
JDK'dan itibaren
11
Zorluk
İleri
JDBC ResultSet Eşleme ile JPA Criteria API Karşılaştırması
Mevcut

Jakarta EE 8 / Java 11'den itibaren geniş çapta kullanılabilir

Ham JDBC, SQL dizilerinin oluşturulmasını, parametrelerin dizine göre ayarlanmasını ve her ResultSet sütununun manuel olarak eşlenmesini gerektirir — bu süreç hata eğilimlidir ve sütunlar değiştiğinde sessizce bozulur. JPA Criteria API, tür-güvenli bir oluşturucu deseni kullanarak sorguları programatik olarak oluşturur. Sütun adları entity modeline göre doğrulanır, sonuç eşlemesi otomatik yapılır ve karmaşık dinamik sorgular dize birleştirme olmadan temiz biçimde oluşturulur.

Paylaş 𝕏 🦋 in