private List<?> findBySQLForWhat(String sql,Object[] args,String what) {
SQLQuery query = this.getSession().createSQLQuery(sql);
if(args != null && args.length > 0) {
for (int i = 0; i < args.length; i++) {
query.setParameter(i, args[i]);
}
}
if("map".equalsIgnoreCase(what)) {
query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
}
//设置从缓存中获取数据
query.setCacheable(true);
return query.list();
}
关键代码:query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
这个map对象中的key使用对应列的字段名称,value为结果