您的位置:首页 > 移动开发 > Objective-C

hibernate如何返回一个Map对象 以及List<Map<String, Object>>

2015-12-09 10:02 316 查看
Java代码  


/** 

     *  

    * Discription : 将查询出来的数据转换为Map集合,但前提是只能为一条数据 ,它的key为其查询的字段. 

    * @param sql 

    * @return 

    * Map<String,Object> 

    * @date 2013-9-29 下午1:20:50  

    * @throws      

    * @author : shendx 

     */  

    @Override  

    public Map<String, Object> getQueryResultToMap(final String sql) {  

        return (Map<String, Object>) getHibernateTemplate().execute(new HibernateCallback() {  

              

            @Override  

            public Object doInHibernate(Session session) throws HibernateException,  

                    SQLException {  

                Query query = session.createSQLQuery(sql);  

                return (Map)query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).uniqueResult(); //返回值为map集合 且为唯一值(只能返回一条数据)  

            }  

        });  

    }  

      

    /** 

     *  

    * Discription : 将sql中的全部数据查出来,返回值为一个List<Map<String, Object>>具体用法见 

    * @see #getQueryResultToMap(String) 

    * @param sql 

    * @return 

    * List<Map<String,Object>> 

    * @date 2013-9-29 下午1:23:20  

    * @throws      

    * @author : shendx 

     */  

    @Override  

    public List<Map<String, Object>> getQueryResultToListMap(final String sql) {  

        r
b996
eturn (List<Map<String, Object>>) getHibernateTemplate().execute(new HibernateCallback() {  

              

            @Override  

            public Object doInHibernate(Session session) throws HibernateException,  

                    SQLException {  

                Query query = session.createSQLQuery(sql);  

                return (List)query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();  

            }  

        });  

    }  

 函数 getQueryResultToMap 只能查询一条数据,否则会报错

例如:

select t.id,t.name from tableName t; 那么它在map中的key为id 和name。

当然也可以 select * from tableName;

另外值得注意的是,经过我本地测试如果取别名是报错
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: