2012-06-29 122 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 –