2012-06-29 90 views
0

我想实现这样的:从线程(线程从选择总和(thread.emails))标准计算+副查询

选择线程,其中 是等于?

我如何使用Criteria + 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的全新手......我无法找到类似于从数组中获得第一个/ las元素的东西。按顺序获得TOP 1,但也许有一些简单的方法,就像你建议我的大小一样?谢谢 –

+0

@BlancaHdez你是否懒惰初始化你正在呼叫TOP 1的集合? – JMelnik

+0

不懒惰,但渴望 - > FetchType.EAGER –