设置分页的maxResults并按日期设置顺序,但排序仅针对项目的数量(值maxResults),而不是完整列表。
@Override
public List<News> getNewsList(final List<Integer> rssIds, final int numberOfNewsPerPage, final int indexOfFirstNews) {
HibernateCallback<List<News>> callback = new HibernateCallback<List<News>>() {
@Override
public List<News> doInHibernate(Session sn) throws HibernateException, SQLException {
Query query = sn.createQuery(" from News as n "
+ "where n.rssId in (:idsParam) "
+ "order by :orderby");
query.setParameterList("idsParam", rssIds);
query.setParameter("orderby", "date desc");
query.setFirstResult(indexOfFirstNews);
query.setMaxResults(numberOfNewsPerPage);
return query.list();
}
};
答案 0 :(得分:0)
如果你的问题是:“如何只对查询返回的项进行排序,而不是对整个列表进行排序,然后应用第一个和最大结果约束?”,那么如果没有明确地对结果列表进行排序,则不可能,在Java中,使用比较器。
另一种方法是使用本机SQL查询,但查询将取决于您正在使用的数据库。