hibernateTemplate 使用原生sql查询,并将查询结果集直接封装成map对象

	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为结果

你可能感兴趣的:(hibernate)