javax.persistence.criteria.CriteriaBuilder ile sorgular oluşturma konusunda bir sorun yaşıyorum. EclipseLink 2.1 ve bir Oracle 10g veritabanı kullanıyorum. Birden fazla kısıtlamaya sahip bir sorgu oluştururken, her ikisini de değil, yalnızca ilk kısıtlamayı kullanır.Jpa QueryBuilder Maddenin çalışmadığı yerde birden çok ifade
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Assignment> query = cb.createQuery(Assignment.class);
Root<Assignment> assignment = query.from(Assignment.class);
query.where(
cb.equal(assignment.get("request"), request),
cb.isNull(assignment.get("endDate")));
return getEm().createQuery(query).getResultList();
üretilmiş sorgu:
SELECT ASSX_ID, END_DATE, BEGIN_DATE, COMMENTS,
ASSX_OER_ASSIGNED_TO_ID, OER_OER_ID_ASSIGNED_BY,
ASSX_RQST_ID
FROM TARTS.ASSIGNMENT_XREF
WHERE (ASSX_RQST_ID = ?)
O nerede hüküm haricinde iyi görünüyor
İşte benim kodudur. Ben bekliyorum: Ben de cb.and (ARG1, arg2) ya da kullanmak eğer fark etmez
SELECT ASSX_ID, END_DATE, BEGIN_DATE, COMMENTS,
ASSX_OER_ASSIGNED_TO_ID, OER_OER_ID_ASSIGNED_BY,
ASSX_RQST_ID FROM TARTS.ASSIGNMENT_XREF
WHERE (ASSX_RQST_ID = ? AND BEGIN_DATE IS NOT NULL)
. Yanlış bir şey mi yapıyorum? Herhangi bir yardım takdir edilecektir.
Kişisel cb.isNull isNotNull olmalıdır yapar. Daha fazla kısıtlama eklemeyi denediniz mi ve/veya bağlantınızı açıkça tanımlamaya çalıştınız mı? – jelle