直接上代码了 使用的是 hibernateTemplate 进行内部接口实现方法来创建session 返回是 map
public List<Map> getListBySql(String sql) {
Object cacheItem = null;
//我这里是自己做了缓存 所以判断下
if(caches.containsKey(sql)) {
cacheItem = caches.get(sql);
if(cacheItem != null && cacheItem instanceof List)
return (List<Map>)cacheItem;
else return null;
}
final String sqlIn = sql;
List<Map> l = (List<Map>) getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
//ALIAS_TO_ENTITY_MAP是指定放回的是map类型的集合哦
Query query = session.createSQLQuery(sqlIn).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
return query.list();
}
});
//这里设置缓存 如果不需要就去掉
caches.put(sql, l);
return l;
}