createSQLQuery返回对象
来源:互联网 发布:网红阿沁的淘宝店 编辑:程序博客网 时间:2024/06/06 01:08
当我们用HQL进行子查询的时候,如select * from Tree where pid in (select id from Tree,此时HIBERANTE就会报错,说什么*号错误之类的。但如果将*改为Tree类里的所有子段时就不会有问题了。就会像平时一样第一行数据返回一个Object[],然后你再根据Tree类里字段对Object[]数组里的值进行转换。这样一来比较麻烦。今天发现如果我SQL来查有一个方法可以返回一个对象的。
此时在遍历list时就可以(Tree)list.get[i];将每一行的内容变换为一个对象了。
另还可以返回一个Map对象,也就是说在在list里包含多个Map,代码如下
Map map = (Map)list.get[i];
map.get("id");map.get("name");
来取值。按你的SQL语句select后的字段名来作为map的Key,但这个key必须与数据库中的字段名一模一样。
还可以用作函数方面的。如
名称一致(大小写一致)
直接就map.get("SUMID")可以取值了
还有一点就是这个方法在Hibernate3.2版本上才能正常运行。
- Configuration config = new Configuration().configure();
- SessionFactory sf = config.buildSessionFactory();
- Session session = sf.openSession();
- Transaction ts = session.beginTransaction();
- Query query = session.createSQLQuery("select * from Tree t where pid in (select id from Tree) ").addEntity(Tree.class); //返回对象
- List list = query.list();
此时在遍历list时就可以(Tree)list.get[i];将每一行的内容变换为一个对象了。
另还可以返回一个Map对象,也就是说在在list里包含多个Map,代码如下
引用
Query query = session.createSQLQuery("select id,name from Tree t where pid in (select id from Tree) ").setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
//返回一个map,KEY:为DB中名称一致(大小写一致)遍历list时就可以 Map map = (Map)list.get[i];
map.get("id");map.get("name");
来取值。按你的SQL语句select后的字段名来作为map的Key,但这个key必须与数据库中的字段名一模一样。
还可以用作函数方面的。如
- Query query = session.createSQLQuery("select sum(id) SUMID from Tree t where pid in (select id from Tree)
- .addScalar("SUMID",Hibernate.INTEGER) //转换类型,按DB中的type转
- .setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); //返回一个map,KEY:为DB中
名称一致(大小写一致)
直接就map.get("SUMID")可以取值了
还有一点就是这个方法在Hibernate3.2版本上才能正常运行。
0 0
- createSQLQuery返回对象
- createSQLQuery获取对象列表
- hibernate的createSQLQuery与createQuery的返回数组与对象问题
- 使用createSQLQuery直接封装成自定义对象
- Hibernate createSQLQuery list 返回结果转成Map的方法
- Hibernate中CreateSQLQuery的executeUpdate(sql)方法的返回值
- 【Hibernate0001】Hibernate的createSQLQuery查询 返回值设置
- 返回对象
- 返回对象
- java createSQLQuery().list()返回日期格式没有时分秒的解决方法(转)
- 求大神指点 : Hibernate createSQLQuery 返回的函数计算结果怎么接收
- 【Hibernate】关于hibernate中使用createSQLQuery后返回的结果处理
- java createSQLQuery().list()返回日期格式没有时分秒的解决方法
- createSQLQuery error
- createSQLQuery 用法
- hibernate 写createSQLQuery(sql)& 带异步async: false,抽取json对象的ajax 和dataType:"json"
- this.getSession().createSQLQuery 查询出来的字段自动转换为bean对象
- hibernate查询某一个对象后,执行createSQLQuery查询出现的问题
- app-framework学习-----使用jquery
- OLAP中的父子维度
- myeclipse开启后卡死、building workspace缓慢 问题解决
- 护卫神php套件快速搭建本地IIS网站,及解决80端口被封、动态IP甚至无公网IP
- POJ 2485 Highways 最小生成树 (Kruskal)
- createSQLQuery返回对象
- Linux性能统计 - cat /proc/meminfo
- hdu4628 状态压缩搜索or状态dp
- intellij 左右窗口联动
- hdu 1862 EXCEL排序
- Android使用自带JSONObject解析JSON数据 - jCuckoo的专栏 - 博客频道 - CSDN.NET
- 手动进行Excel数据和MySql数据转换
- JPA 主键生成策略
- proc文件系统详解