ページング用に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();
}
};