我尝试按一个字段排序,但我在sql调试器中看到sql不包含order -子句。
我的标准代码是
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)));和
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来获得有序列表:
dao.findAll(false,page*step+1,(page-1)*step+1,"conferm");因此,我的sql查询没有order子句:
select client0_.idCl as idCl218_ ... from Client client0_ limit ?, ?发布于 2013-04-23 01:26:20
在设置order by子句之前构造类型化查询。颠倒这两条指令:
TypedQuery<T> q = em.createQuery(cq);
cq.orderBy(cb.asc(entity.get(order)));https://stackoverflow.com/questions/16152493
复制相似问题