public List<Map<String,Object>> find(final String sql,final String[] fields,
final Object[] conditionValues,final int page,int prePage){
List list = getHibernateTemplate().executeFind(new HibernateCallback()
{
public Object doInHibernate(Session session)
throws HibernateException, SQLException
{
String nsql = sql;
if(pager!=null){
nsql+= pager.getOrderString();
}
SQLQuery query = session.createSQLQuery(nsql);
int first=((page-1)*prePage);
query.setFirstResult(first);
query.setMaxResults(prePage);
if(conditionValues!=null)
{
for (int i = 0 ; i < conditionValues.length ; i++)
{
query.setParameter( i, conditionValues[i]);
}
}
if(fields!=null){
for (int i = 0 ; i < fields.length;i++){
query.addScalar(fields[i]);
}
}
ResultTransformer rtf = Transformers.ALIAS_TO_ENTITY_MAP;
List result = query.setResultTransformer(rtf).list();
return result;
}
});
return list;
}
public Object findOne(final String sql,final String[] fields,final Object[] conditionValues){
List list = getHibernateTemplate().executeFind(new HibernateCallback()
{
public Object doInHibernate(Session session)
throws HibernateException, SQLException
{
SQLQuery query = session.createSQLQuery(sql);
if(conditionValues!=null)
{
for (int i = 0 ; i < conditionValues.length ; i++)
{
query.setParameter( i, conditionValues[i]);
}
}
if(fields!=null){
for (int i = 0 ; i < fields.length;i++){
query.addScalar(fields[i]);
}
}
Object o = query.uniqueResult();
List l = new ArrayList();
l.add(o);
return l;
}
});
return list.get(0);
}
hql纯sql语句控制-分页
最新推荐文章于 2018-10-30 20:31:21 发布
本文详细介绍了如何使用Hibernate框架进行SQL查询优化,并结合分页实现高效数据检索。通过设置查询参数,如条件筛选、分页大小和排序,提高了查询效率。重点展示了通过创建SQL查询、设置分页参数和使用特定的返回转换器来获取所需数据的方法。
摘要由CSDN通过智能技术生成