public List findAll(){
Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
String hql="SELECT a.id,a.brach,b.brach FROM Brach a ,Brach b where a.fatherid = b.id";
Query q=session.createQuery(hql);
return q.list();
} 试了许多方法,没有用
Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
String hql="SELECT a.id,a.brach,b.brach FROM Brach a ,Brach b where a.fatherid = b.id";
Query q=session.createQuery(hql);
return q.list();
} 试了许多方法,没有用
List list = q.list();
for(Object o[] : list) {
System.out.println("第一个" + o[0]);
System.out.println("第二个" + o[1]);
System.out.println("第三个" + o[2]);
}
或者用别名,然后绑定到dto中,dto中的字段名和别名要一直。
for(int i = 0; i <list.size();i++) {
Object[] obj =(Object[])list.get(i);
String id = String.valueOf(obj[0]);
String brach = String.valueOf(obj[1]);
String brachfather = String.valueOf(obj[2]);
}
我用的是ssh架构,该怎么样将这个值遍历传到页面呢?
return q.addEntity(EntityClass.class).list();
EntityClass是个实体类,对应你要查询的字段,list的结果是个EntityClass对象集合,遍历强转为EntityClass就行了。
页面
<c:forEach items="${list}" var="obj">
${obj[0]}
</forEach>
Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
String hql="SELECT a.id,a.brach,b.brach FROM Brach a ,Brach b where a.fatherid = b.id";
Query q=session.createQuery(hql);
return q.list();
} action层
public String brachList() throws Exception{
brachs = brachservice.findAll();
return SUCCESS;
}
jsp<s:iterator value="brachs">
<tr>
<td><input type="checkbox" id="check_id" name="check_id" value="<s:property value="id"/>"></td>
<td><s:property value="id"/></td>
<td><s:property value="brach"/></td>
<td><s:property value="fatherid"/></td>
</tr>
</s:iterator>
遍历强转为EntityClass 什么意思?