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(); 

  • 相关阅读:
    python os模块
    python time、datetime模块
    python 导入模块、包
    python json、pickle
    python 装饰器
    python 生成器、迭代器
    python 内置函数
    python 函数的参数
    python 编码解码
    python 文件读写、shutil模块
  • 原文地址:https://www.cnblogs.com/hedongfei/p/7403354.html
Copyright © 2011-2022 走看看