Hibernate:hql语句执行sql不支持limit和count()的处理

背景:hibernate-core-4.1.7执行sql语句时,发现报错

1、执行 select coutn(1) from t_table时报: unexpected token: 1

解决:

        StringBuffer hql = new StringBuffer();
        hql.append("from Object ");
        ...
        // hql语句中不支持count(1),改成如下形式可以使用
        String queryCount = "select 'count(1)' " + hql.toString();// 写法不好,不推荐
        queryCount = "select sum(1) " + hql.toString();//这种写法支持

2、unexpected token: 1

解决:

        Query query  = sessionFactory.getCurrentSession().createQuery(hql);
        query.setMaxResults(pageSize);// 显示的条数
        query.setFirstResult(index);// 从第几条记录开始
        List<T> list = query.list();// 转化成集合

猜你喜欢

转载自www.cnblogs.com/leonlipfsj/p/12296332.html
今日推荐