Hibernate 的原生sql查询转map setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)

来源:互联网 发布:手机淘宝微淘在哪里 编辑:程序博客网 时间:2024/06/08 10:58

使用该方法最直接的好处就是可以根据查询的字段名来获取相应的值

[java] view plain copy
  1. </pre><p>如下是一个查询多字段时的处理情况:</p><p></p><pre name="code" class="java">String sql = "SELECT message_id,app_id FROM message";  
  2.         Query query = getSession().createSQLQuery(sql);  
  3.         List<Object[]> result = query.list();//默认查询出来的list里存放的是一个Object数组   
  4.         for (Object[] objects : result) {  
  5.             String message_id = objects[0].toString();  
  6.             String app_id = objects[1].toString();  
  7.             System.out.println(message_id+","+app_id);  
  8.         }  

这里使用了Object[ ],这是默认滴,在取值过程中要遍历,比较麻烦


下面我们使用setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)方法

[java] view plain copy
  1. String sql = "SELECT message_id,app_id FROM message";  
  2.         Query query = getSession().createSQLQuery(sql);  
  3.         query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); // 这样子返回Map  
  4.         List result = query.list();  
  5.         for (Object object : result) {  
  6.             Map obj = (Map) object;  
  7.             String message_id = obj.get("message_id").toString();  
  8.             String app_id = obj.get("app_id").toString();  
  9.             System.out.println(message_id+","+app_id);  
  10.         }  
这里返回Map,就可以直接根据key取相应的值了,更灵活
阅读全文
1 0
原创粉丝点击