在上一篇文章提到了这个方法,在这里再详细谈谈我对这个方法的理解
使用该方法最直接的好处就是可以根据查询的字段名来获取相应的值
</pre><p>如下是一个查询多字段时的处理情况:</p><p></p><pre name="code" class="java">String sql = "SELECT message_id,app_id FROM message";
Query query = getSession().createSQLQuery(sql);
List<Object[]> result = query.list();//默认查询出来的list里存放的是一个Object数组
for (Object[] objects : result) {
String message_id = objects[0].toString();
String app_id = objects[1].toString();
System.out.println(message_id+","+app_id);
}
这里使用了Object[ ],这是默认滴,在取值过程中要遍历,比较麻烦
下面我们使用setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)方法
String sql = "SELECT message_id,app_id FROM message";
Query query = getSession().createSQLQuery(sql);
query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); // 这样子返回Map
List result = query.list();
for (Object object : result) {
Map obj = (Map) object;
String message_id = obj.get("message_id").toString();
String app_id = obj.get("app_id").toString();
System.out.println(message_id+","+app_id);
}
这里返回Map,就可以直接根据key取相应的值了,更灵活