多表联合查询后的结果的结果放入list里,如何拿出来

多表联合查询后的结果的结果放入list里,如何拿出来

问题描述:

DaoImpl代码:

public List findstudentidList(int i){
String hql = "from User u,TTopic t,Log l where u.id = ? and u.name = t.teachername and t.topicid = l.topicid and t.isfinaltopic = true and l.isdroped = true";
return this.getHibernateTemplate().find(hql,i);
}

Action代码:

list = new ArrayList();
list = this.service.findListstudentid(user.getId());
for (int i = 0; i < list.size(); i++){
Object[] arr = (Object[])list.get(i);
System.out.println("a = "+arr[0].toString());
System.out.println("b = "+arr[1].toString());
System.out.println("c = "+arr[2].toString());
}

控制台怎么输出这些:
a = gdms.bean.User@1298826
b = gdms.bean.TTopic@1a99836
c = gdms.bean.Log@148083b
a = gdms.bean.User@1298826
b = gdms.bean.TTopic@1f31ad9
c = gdms.bean.Log@18b4ccb

如果说 根据多表查询只是查询的条件不同 而显示的数据还是一个表中的数据 这样的话 查询语句按SQL语句一样的写法 如果说 查询出数据要分别显示几个表中的信息的话 这个很麻烦 新建一个实体类 实体类的属性包含要显示数据的字段 然后只能按照原始的数据库连接读取数据 一个个的赋值 添加到List中

Hibernate取到的是未转型的Object,先转型,然后取bean中的属性值就可以了。例如:((User)arr[0]).getUserName()

String hql = "from User u,TTopic t,Log l where u.id = ? and u.name = t.teachername and t.topicid = l.topicid and

这句话里面User u,表示了查出来的是对象

list = new ArrayList();
list = this.service.findListstudentid(user.getId());
for (int i = 0; i < list.size(); i++){
Object[] arr = (Object[])list.get(i);
System.out.println("a = "+arr[0].toString());
System.out.println("b = "+arr[1].toString());
System.out.println("c = "+arr[2].toString());
}

将对象取出来放到list里面 然后又一一读取放到object的数据里面 这一步有点多余! 为何不直接读取list 从list里面取呢?

arr[0]取到的还是对象 所以打印出来的是内存地址了!

DaoImpl代码:

public List findstudentidList(int i){
String hql = "from User u,TTopic t,Log l where u.id = ? and u.name = t.teachername and t.topicid = l.topicid and t.isfinaltopic = true and l.isdroped = true";
return this.getHibernateTemplate().find(hql,i);
}

Action代码:

list = new ArrayList();
list = this.service.findListstudentid(user.getId());
for (int i = 0; i < list.size(); i++){
Object[] arr = (Object[])list.get(i);
System.out.println("a = "+arr[0].toString());
System.out.println("b = "+arr[1].toString());
System.out.println("c = "+arr[2].toString());
}

public List findstudentidList(int i){...

list = this.service.findListstudentid(user.getId());
中的findstudentidList findListstudentid 有问题吗1你能不能把正确的代码 贴出来呀