hql纯sql语句控制-分页

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);
	}

你可能感兴趣的:(sql语句)