**
* 使用hql 語(yǔ)句進(jìn)行操作
* @param hql
* @param offset
* @param length
* @return List
*/
public List getListForPage(final String hql, final int offset,
final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list = query.list();
return list;
}
});
return list;
}/**
* 使用criterion進(jìn)行操作
* @param arg
* @param criterions
* @param offset
* @param length
* @return List
*/
protected List getListForPage(final Class arg, final Criterion[] criterions,final int offset, final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(arg);
//循環(huán)遍歷添加約束條件
for (int i = 0; i < criterions.length; i++) {
criteria.add(criterions[i]);
}
criteria.setFirstResult(offset);
criteria.setMaxResults(length);
return criteria.list();
}
});
return list;
}
你不是說(shuō)你用HibernateTemplate了,如果你用的是spring的HibernateTemplate,那么就直接用就行了,如果你是自己寫(xiě)的template,
那你也應(yīng)該會(huì)準(zhǔn)備一個(gè)HibernateCallback類啊,這才是典型的模板加回調(diào)啊
算了,把HibernateCallback也給你貼出來(lái)
import org.hibernate.HibernateException;
import org.hibernate.Session;
/*************************************
* 為 Hibernate 所提供的一個(gè) 回調(diào)接口,
* 此接口定義了 統(tǒng)一 Hibernate的業(yè)務(wù)操作;
* @author kenshin
*
*/
public interface HibernateCallback {
/**************************************
* 回調(diào)接口的回調(diào)方法,此方法使用者無(wú)需調(diào)用,
* 它由 模板類來(lái)進(jìn)行回調(diào),并傳入一個(gè) session參數(shù),
* 以便讓使用者完成相關(guān)業(yè)務(wù)
* @param ses
* @return 執(zhí)行結(jié)果
* @throws HibernateException
*/
Object doInHibernate(Session ses)
throws HibernateException;
}
* 使用hql 語(yǔ)句進(jìn)行操作
* @param hql
* @param offset
* @param length
* @return List
*/
public List getListForPage(final String hql, final int offset,
final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list = query.list();
return list;
}
});
return list;
}/**
* 使用criterion進(jìn)行操作
* @param arg
* @param criterions
* @param offset
* @param length
* @return List
*/
protected List getListForPage(final Class arg, final Criterion[] criterions,final int offset, final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(arg);
//循環(huán)遍歷添加約束條件
for (int i = 0; i < criterions.length; i++) {
criteria.add(criterions[i]);
}
criteria.setFirstResult(offset);
criteria.setMaxResults(length);
return criteria.list();
}
});
return list;
}
你不是說(shuō)你用HibernateTemplate了,如果你用的是spring的HibernateTemplate,那么就直接用就行了,如果你是自己寫(xiě)的template,
那你也應(yīng)該會(huì)準(zhǔn)備一個(gè)HibernateCallback類啊,這才是典型的模板加回調(diào)啊
算了,把HibernateCallback也給你貼出來(lái)
import org.hibernate.HibernateException;
import org.hibernate.Session;
/*************************************
* 為 Hibernate 所提供的一個(gè) 回調(diào)接口,
* 此接口定義了 統(tǒng)一 Hibernate的業(yè)務(wù)操作;
* @author kenshin
*
*/
public interface HibernateCallback {
/**************************************
* 回調(diào)接口的回調(diào)方法,此方法使用者無(wú)需調(diào)用,
* 它由 模板類來(lái)進(jìn)行回調(diào),并傳入一個(gè) session參數(shù),
* 以便讓使用者完成相關(guān)業(yè)務(wù)
* @param ses
* @return 執(zhí)行結(jié)果
* @throws HibernateException
*/
Object doInHibernate(Session ses)
throws HibernateException;
}