1. 程式人生 > >hibernateTemplate 使用原生sql查詢,並將查詢結果集直接封裝成map物件

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為結果