首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于list 显示值的有关问题

2012-02-14 
关于list显示值的问题我用hibernate 原生态sql做了一个查询的操作这个是原生态sql语句,用hql的时候不能用

关于list 显示值的问题
我用hibernate 原生态sql 做了一个查询的操作

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

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



这个是service 

Java code
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中
Java code
List list = wageserviceimp.find_ceshi();            for (int i = 0; i < list.size(); i++) {                System.out.println(list.get(i));            }

list当中有四条数据
SQL code
    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属性了, 像这种我改怎么得到我要的数据,显示到页面上,或者在后台打印出来!
高手指点一下!!!!!!!!!!!!!!!,感激啊,感激。。。

[解决办法]
List对象取出来,可以直接.getXXX();的
[解决办法]
在q.list()前面 加上 q.addEntity(entityClass);指定转换类型
[解决办法]
因为SQLQuery 是不知道你查询结果的类型,所以要动态指定将结果集转换成什么类型的,在q.list()前面 加上 q.addEntity(entityClass);指定转换类型
[解决办法]
或者重写toString()方法
[解决办法]
list存放的是Object对象,要转化成User对象
在q.list()前面 加上 
q.setResultTransformer(Transformers.aliasToBean(User.class));

[解决办法]
因为你查出来是普通的数组,不是实体对象的集合。原因是你那个里面没有用hql封装成对象,所以页面就直接遍历集合,然后${遍历出来的集合名[数组下标]}即可。。。
[解决办法]
修改一下:应该是${遍历出来的数组名[数组下标]}。。。
[解决办法]
list.get(i).get("username");

热点排行