HQL自己設定表示レコード数
1420 ワード
今日、実験プロジェクトをする时、前にいくつかのモジュールの机能を実现しましたが、すべてのモジュールのデータを见るには、すべてのactionに提出して、そのactionのresultページにジャンプして、少し面倒な感じがして、多くのウェブサイトのシステムはトップページに各种のデータを表示しなければなりません.见て分からないで、だから自分で直接システムのプラットフォームに登录する时各种のデータを探して、トップページの空间が限られているため、各モジュールのデータは普通10-20条ぐらいしか表示しないで、このように10-20条の记录を探すだけで、多く言わないで、直接コードを见ます:
主にページング検索を使用します.
トップページに表示されているのは一般的に最新のデータが必要なので、並べ替えなくても直接
query.setFirstResult(first); query.setMaxResults(allRow);
ここではallrowがすべてのレコード数、firstが検索を開始する場所、allrowから検索するエントリ数を減算するとfirstになります.
次はコードです
主にページング検索を使用します.
トップページに表示されているのは一般的に最新のデータが必要なので、並べ替えなくても直接
query.setFirstResult(first); query.setMaxResults(allRow);
ここではallrowがすべてのレコード数、firstが検索を開始する場所、allrowから検索するエントリ数を減算するとfirstになります.
次はコードです
@Override
public List listTop10(final String queryString,final int num) {
// TODO Auto-generated method stub
try{
return (List) getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session s) throws HibernateException, SQLException{
//
int allRow=getAllRowCount(queryString);
//
int first=0;
if(allRow>num){
first=allRow-num;
}
Query query=s.createQuery(queryString);
query.setFirstResult(first);
query.setMaxResults(allRow);
List list= query.list();
System.out.println(" ");
return list;
}
});
}catch (RuntimeException re){System.out.println(" ");throw re;}
}
@Override
public int getAllRowCount(String hql) {
// TODO Auto-generated method stub
return getHibernateTemplate().find(hql).size();
}