0
我想根據以下SQL語句使用CriteriaBuilder從JPA中選擇前10條記錄。使用JPA選擇前10名
SELECT * from RECORDTABLE rt
where rt.LASTUPDATED > startDate
and rt.LASTUPDATE < endDate
order by rt.TOTALNUMBER asc;
到目前爲止,我用Predicates爲日期。
我想根據以下SQL語句使用CriteriaBuilder從JPA中選擇前10條記錄。使用JPA選擇前10名
SELECT * from RECORDTABLE rt
where rt.LASTUPDATED > startDate
and rt.LASTUPDATE < endDate
order by rt.TOTALNUMBER asc;
到目前爲止,我用Predicates爲日期。
我在網上搜索後發現了答案,我不想回答我自己的問題導致我看起來像沖洗,但論壇不允許我刪除這個問題時,有答案(雖然不是我的問題)
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Record> query = cb.createQuery(Record.class);
Root sm = query.from(Record.class);
List<Predicate> predicateList = new ArrayList();
predicateList.add(cb.greaterThanOrEqualTo(sm.get(COL_TIMESTAMP), startDate));
predicateList.add(cb.lessThanOrEqualTo(sm.get(COL_TIMESTAMP), endDate));
if (predicateList.size() > 0)
{
query.where(predicateList.toArray(new Predicate[predicateList.size()]));
}
**query.orderBy(cb.desc(sm.get(COL_TOTALRECORD)));**
List<Record> tempList = em.createQuery(query)
.setFirstResult(0)
.setMaxResults(10)
.getResultList();
這就是我一直在尋找
query.orderBy(cb.desc(sm.get(COL_TOTALRECORD)));
沒有什麼錯回答自己的問題(搜索MetaSO進行討論)。您應該將其標記爲可接受的解決方案。 – Tilo