zoukankan      html  css  js  c++  java
  • Hibernate Transformers之三种结果转换说明

    在hibernate使用的过程中,我们通常需要对结果进行解释。Hibernate为我们提供了以下3种查询结果解释方法:

    1. Transformers.ALIAS_TO_ENTITY_MAP //把输出结果转换成map   
    2. Transformers.TO_LIST //把结果按顺序排进List   
    3. Transformers.aliasToBean(target) //把结果通过setter方法注入到指定的对像属性中   

    在Hibernate中Transformers的所有转换都是需要实现ResultTransformer接口。

    ① ALIAS_TO_ENTITY_MAP :太简单了就是把key和value直接转换到Map当中 :

    1. /**  
    2. * {@inheritDoc}  
    3. */   
    4. // aliases key   
    5. // tuple value   
    6.  
    7. public Object transformTuple(Object[] tuple, String[] aliases) {   
    8.     Map result = new HashMap(tuple.length);   
    9.     for ( int i=0; i<tuple.length; i++ ) {   
    10.         String alias = aliases[i];   
    11.      if ( alias!=null ) {   
    12.          result.put( alias, tuple[i] );   
    13.      }   
    14.     } 
    15.  
    16.     return result;   
    17. }  

    ② TO_LIST:转换过程很简单,就是把value转换成List对像:

    1. public Object transformTuple(Object[] tuple, String[] aliases) {   
    2.     return Arrays.asList( tuple );   
    3. }  

    ③ aliasToBean:转换过程就是通过读取查询后的字段,然后通过使用setter方法注入到目标对像中 :

    1. getSession().beginTransaction(); 
    2. Query query = getSession().createSQLQuery("select * from operation"); 
    3. list =query.setResultTransformer(Transformers.aliasToBean(Operation.class)).list(); 
    4. getSession().getTransaction().commit(); 

  • 相关阅读:
    闪回还原点解析
    先有鸡还是先有蛋的争论
    Android缓存处理
    hdu 1398 Square Coins (母函数)
    JSON具体解释
    【LeetCode】String to Integer (atoi) 解题报告
    【Linux探索之旅】第一部分第四课:磁盘分区,并完毕Ubuntu安装
    MySQL排序:SELECT ORDER BY
    架构师速成7.3-devops为什么非常重要
    升级Linux内核导致vmware无法使用(vmnet模块无法编译)解决方式
  • 原文地址:https://www.cnblogs.com/hedongfei/p/7403354.html
Copyright © 2011-2022 走看看