java – 一些有关hibernate Criteria查询的帮助

有人可以帮我完成/清理这个查询.我试图首先获取表中的行数,然后我需要实际获取一组行.我不确定如何使用相同的条件实例来执行两个查询.

要获取计数我有这样的事情:

Criteria criteria = session.createCriteria(MyTable.class);
criteria.setProjection(Projections.rowCount());
Integer count = (Integer) criteria.uniqueResult();
int numRows = count.intValue();

并获取行(我只需要一个子集用于分页):

Criteria criteria = session.createCriteria(MyTable.class);
criteria.setFirstResult(offset);
criteria.setMaxResults(limit);
criteria.addOrder(Order.desc(orderBy.toString()));
List<MyType> myType = criteria.list();

我是否首先需要将投影或类似的东西取出来以便我可以使用条件来获取行(执行计数后)?

我希望有一些帮助清理它,以便我可以有效地执行两个查询,最终得到总行数和结果列表.谢谢!!

解决方法:

您需要清除计数投影并设置结果转换器以检索MyTable对象.试试这个第二个查询:

criteria.setProjection(null)

criteria.setResultTransformer(Criteria.ROOT_ENTITY);

上一篇:K-Means 基于matlab+opencv 实现图像分割-灰度


下一篇:Linux C编程--fork()详解