首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CriteriaQuery无排序

CriteriaQuery无排序
EN

Stack Overflow用户
提问于 2013-04-23 00:52:34
回答 1查看 90关注 0票数 0

我尝试按一个字段排序,但我在sql调试器中看到sql不包含order -子句。

我的标准代码是

代码语言:javascript
复制
GenericDaoImpl<T> {
    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaQuery<T> cq = getCriteriaQuery(cb);
    Root<T> entity = getRoot(cq);
    cq.select(entity);
    TypedQuery<T> q = em.createQuery(cq);

    cq.orderBy(cb.asc(entity.get(order)));

代码语言:javascript
复制
public class GenericDaoClient extends GenericDaoImpl<Client> {
    @Override
    protected CriteriaQuery<Client> getCriteriaQuery(CriteriaBuilder cb){
            return (CriteriaQuery<Client>) cb.createQuery(Client.class);
    }

    @Override
    protected Root<Client> getRoot(CriteriaQuery cq){
            return cq.from(Client.class);
    }

然后我调用我的dao来获得有序列表:

代码语言:javascript
复制
dao.findAll(false,page*step+1,(page-1)*step+1,"conferm");

因此,我的sql查询没有order子句:

代码语言:javascript
复制
select client0_.idCl as idCl218_ ... from Client client0_ limit ?, ?
EN

回答 1

Stack Overflow用户

发布于 2013-04-23 01:26:20

在设置order by子句之前构造类型化查询。颠倒这两条指令:

代码语言:javascript
复制
TypedQuery<T> q = em.createQuery(cq);
cq.orderBy(cb.asc(entity.get(order)));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16152493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档