2009-10-16 19 views

cevap

0

JPA, Hazırda Bekletme gibi bir Kriterler API sağlamaz. Ancak, EJB3 Persistence için Hazırda Bulunan Kriter API'sı tasarımına dayalı bir API sağlayan bir kitaplık olan ejb3criteria'u kullanabilirsiniz. ejb3criteria herhangi bir EJB3 Persistence uygulaması ile kullanılabilir.

+0

Teşekkürler, tam ihtiyacım olan şey bu! Hiç denedin mi? – user132371

+0

Denendi, evet; üretimde kullanılan, hayır. Bu sadece yoğun kullanmadığım anlamına geliyor, ama "bunu üretimde kullanmayın" demiyorum. –

7

JPA 2.0'da sunulan yeni özelliklerden biri, Kriterler API'sidir. Sen JPA2 uygulamalarından biri gerekir:

sorguları EntityManager.getCriteriaBuilder erişilen Kriterler() ve normal Sorgu API'sı aracılığıyla yürütülür.

EntityManager em = ...; 
CriteriaBuilder qb = em.getCriteriaBuilder(); 
CriteriaQuery<Employee> query = qb.createQuery(Employee.class); 
Root<Employee> employee = query.from(Employee.class); 
query.where(qb.equal(employee.get("firstName"), "Bob")); 
List<Employee> result = em.createQuery(query).getResultList(); 
+0

Doğru. Ama bu soru hakkında olan JPA 1.0/EJB 3.0'ın bir parçası değil. –

1

JPA 2 (ölçüt API sağlayan) JSR 220 (orijinal EJB/JPA şartname) devamı olarak kabul edilebilir JSR 317 tanımlanmıştır. Bu yüzden yorumunuz "Doğru. Ama bu sorunun ne olduğunu JPA 1.0/EJB 3.0'in bir parçası değil." JPA 2'yi tüm ortak uygulama sunucularında (WebLogic, JBOSS, Glassfish, vb.) birbirinin yerine kullanabileceğiniz için ilgisizdir. Yeşil alan projeleri JPA 2.0 veya daha sonraki sürümleri kullanacaktır. JPA 1 kullanılarak uygulanan birçok proje bulacaksınız, ancak çoğu şirket JPA 1 çerçevesini değiştirme sürecindedir.