关于list 显示值的问题

隔夜的果酱_5566 2011-05-30 05:01:24
我用hibernate 原生态sql 做了一个查询的操作

这个是原生态sql语句,用hql的时候不能用函数

public List find_ceshi(String sql) {
System.out.println("**"+sql);
SQLQuery q = this.getSession().createSQLQuery(sql);
return q.list();
}



这个是service

public List find_ceshi() {
String sql ="select username,group_concat( welfares ,moneys),dept from salary_fl where month='2011-04' group by username";
List list = wagesdao.find_ceshi(sql);
return list;
}




在action中
List list = wageserviceimp.find_ceshi();
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}

list当中有四条数据
    select
username,
group_concat( welfares ,
moneys),
dept
from
salary_fl
where
month='2011-04'
group by
username
[Ljava.lang.Object;@b4c69
[Ljava.lang.Object;@1c5ab93
[Ljava.lang.Object;@837311
[Ljava.lang.Object;@1f78541

现在我不明白的地方就是,list中没有对象,我怎么才能得到我查询的那些数据,以前用list<user> u
就可以直接用u。get属性了, 像这种我改怎么得到我要的数据,显示到页面上,或者在后台打印出来!
高手指点一下!!!!!!!!!!!!!!!,感激啊,感激。。。
...全文
186 12 打赏 收藏 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyc1985414 2011-05-31
  • 打赏
  • 举报
回复
list.get(i).get("username");
休谱诺斯 2011-05-31
  • 打赏
  • 举报
回复
修改一下:应该是${遍历出来的数组名[数组下标]}。。。
休谱诺斯 2011-05-31
  • 打赏
  • 举报
回复
因为你查出来是普通的数组,不是实体对象的集合。原因是你那个里面没有用hql封装成对象,所以页面就直接遍历集合,然后${遍历出来的集合名[数组下标]}即可。。。
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zwtlong 的回复:]
在q.list()前面 加上 q.addEntity(entityClass);指定转换类型
[/Quote]

我用过这个了一但加上实体
就报错could not execute query,没有查询,是不是我的sql语句用到了函数的为问题而不能直接转换为对象啊!
lovemichael2 2011-05-31
  • 打赏
  • 举报
回复
可能是你用到了某些函数hibernate不支持
Spring89 2011-05-31
  • 打赏
  • 举报
回复
为什么不用泛型呢?
list.get(i).toString();
这不行吗???
Spring89 2011-05-31
  • 打赏
  • 举报
回复
this.getSession().createSQLQuery(sql)
.addScalar("username",Hibernate.STRING)
.addScalar("group_concat(welfares ,moneys)",Hibernate.STRING)
.addScalar("dept",Hibernate.STRING);
你这样试下,例外:我对你的SQL语句有点怀疑。
在SQL中:使用聚合函数查询的列,必须出现group by语句中,
除使用聚合函数的列外,所以我认为还要group by后加上dept。
你的SQL查询出来的结果可能有误......
UPC_思念 2011-05-30
  • 打赏
  • 举报
回复
list存放的是Object对象,要转化成User对象
在q.list()前面 加上
q.setResultTransformer(Transformers.aliasToBean(User.class));
「已注销」 2011-05-30
  • 打赏
  • 举报
回复
或者重写toString()方法
实践和文字 2011-05-30
  • 打赏
  • 举报
回复
因为SQLQuery 是不知道你查询结果的类型,所以要动态指定将结果集转换成什么类型的,在q.list()前面 加上 q.addEntity(entityClass);指定转换类型
实践和文字 2011-05-30
  • 打赏
  • 举报
回复
在q.list()前面 加上 q.addEntity(entityClass);指定转换类型
「已注销」 2011-05-30
  • 打赏
  • 举报
回复
List对象取出来,可以直接.getXXX();的
摘 要 针对高校教师教学业绩管理流程复杂、数据填报不规范、多级审核效率低、统计分析滞后等问题,本文设计并实现一套基于SpringBoot+Vue前后端分离架构的高校教师教学业绩综合管理系统。系统后端以SpringBoot处理业务逻辑与接口开发,前端用Vue构建交互界面,MySQL存储数据,MD5加密保障账号安全,具备低耦合、易扩展、易维护特性。 系统按权限划分为教师、学院管理员、学校管理员三级角色,构建闭环式业绩管理体系。教师可完成信息维护、业绩录入、成果申报、审核跟踪、档案导出、智能咨询与社区互动;学院管理员负责教师管理、业绩初审、数据汇总、通知发布与修正申请;学校管理员承担权限分配、数据维护、业绩终审、统计分析、公告发布与日志审计。 系统实现业绩填报、初审、终审、统计归档全流程线上化,支持批量导入、敏感词过滤、数据可视化、7×24小时AI咨询等功能,规范管理流程、减少统计误差、提升审核效率。测试表明,系统满足高校教学业绩精细化、规范化、信息化管理需求,为教师考核、绩效评定、教学评估提供数据支撑,提升高校教学管理智能化水平。 关键词: SpringBoot;Vue;教学业绩管理;三级权限;前后端分离

81,108

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧