您的位置:首页 > 数据库

通过SQL查询多个表的结果且分页

2013-05-17 15:57 375 查看
如下方式:需要使用hibernate3.2及以上版本:

 

@SuppressWarnings("unchecked")
public List queryObjectsBySQL(final String HQLStr,
final Object[] parmaters, final Integer startRow,
final Integer rowCount) throws DaoException {

try {
List list = getHibernateTemplate().executeFind(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {

Query query = session.createSQLQuery(HQLStr).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

if (startRow != null && startRow.intValue() >= 0
&& rowCount != null
&& rowCount.intValue() >= 0) {
query.setFirstResult(startRow);
query.setMaxResults(rowCount);
}
if (parmaters != null && parmaters.length > 0) {
for (int i = 0; i < parmaters.length; i++) {
if((parmaters[i]) instanceof List){
List tempList = (List) parmaters[i];
query.setParameterList("typeids", tempList);
}else{

query.setParameter(i, parmaters[i]);
}
}
}
List list = query.list();
return list;
}

});
return list;
} catch (Exception e) {
throw new DaoException(DaoExceptionType.TYPE_CODE_DAO, e);
}

}

注意:

     Query query = session.createSQLQuery(HQLStr);  List list= query.list();  返回的是object的数组,内容只包含值,不包含名称,

   Query query = session.createSQLQuery(HQLStr).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); List list = query.list();  返回的是map类型的集合,包含键值对,既有名称又有值。

 

搜藏:http://www.blogjava.net/rain1102/archive/2009/02/23/256344.html   把查询结果转为对象或者map

          http://langgufu.iteye.com/blog/1565397
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐