我正在Struts 2和Hibernate 3中开发应用程序。
我有3张桌子
[Inspection
与InspectionMission
关联,并且InspectionMission
与Timeline
关联。
现在我有以下问题。我已经在HQL中编写了以下查询]
public List getQuartewiseInspectionList(){
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
Query q = session.createQuery(
"select count(i.inspectionId) as tot_inspections,t.year,t.quarter" +
" From Inspection as i " +
" inner join i.inspectionMission as im inner join im.timeline as t" +
" GROUP by t.year,t.quarter");
return q.list();
}
我想按以下方式获取结果
result[0][tot_inspections] = "6"
result[0][year] = "2009";
result[0][quarter] = "Q2";
result[1][tot_inspections] = "3"
result[1][year] = "2009";
result[1][quarter] = "Q3";
以此类推,这样我就可以在jsp struts中显示它,如下所示:
在JSP中,我编写了以下代码
<table border="1">
<s:iterator value="result" status="status">
<tr class="<s:if test="#status.even">even</s:if><s:else>odd</s:else>">
<td class="nowrap"><s:property value="tot_inspections" /></td>
<td class="nowrap"><s:property value="year" /></td>
<td class="nowrap"><s:property value="quarter" /></td>
</tr>
</s:iterator>
</table>
这里有人可以帮助我吗?
您必须使用“新地图”语法(Hibernate Reference paragraph 14.6)
另一个解决方案是定义一个数据对象,仅用于显示那些结果,然后让Hibernate即时创建这些对象的实例。此类仅需要一个匹配的构造函数。