2012-06-29 2 views
0

Я пытаюсь реализовать что-то вроде:Критерии + суб-запрос

Выбор нити из потока, в котором (Select Sum (thread.emails) от Thread) это равно?

Как я могу определить его с помощью критериев + JPA?

Заранее спасибо

ответ

1

Там это метод размера() в CriteriaBuilder определить размер коллекции.

CriteriaBuilder cb = em.getCriteriaBuilder(); //em is EntityManager 
CriteriaQuery<Thread> cq = cb.createQuery(Thread.class); 

Root<Thread> root = cq.from(Thread.class); 
Expression<Collection<String>> emails = root.get("emails"); 
cq.where(cb.equal(cb.size(emails), PARAM)); 
+0

Как, отлично, спасибо! Я полностью новичок в Criteria ... Я не мог найти что-то похожее, чтобы получить элемент first/las из массива. Получите TOP 1 в порядке, но, может быть, есть простой способ, как тот, который вы предложили мне для размера? Спасибо –

+0

@BlancaHdez вы ленивы инициализируете коллекцию, на которой вы звоните TOP 1? – JMelnik

+0

Не ленивый, но нетерпеливый -> FetchType.EAGER –

Смежные вопросы