Comment récupérer le résultat de la requête Hibernate en tant que tableau associatif de liste ou de hashmap
Je développe une application struts 2 et hibernate 3.
J'ai 3 tables
- Inspection
- InspectionMission
- Montage
Inspection
est associé avec InspectionMission
et InspectionMission
est associé avec Timeline
.
Maintenant j'ai le problème suivant. J'ai écrit à la suite d'une requête en 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();
}
Je veux extraire les résultats comme suit
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";
et ainsi de suite afin que je puisse l'afficher dans la page jsp, struts comme suit:
En JSP j'ai écrit à la suite du code
<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>
Quelqu'un sait-il m'aider?
source d'informationauteur amar4kintu
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser la "nouvelle carte" syntaxe (Hibernate Référence au paragraphe 14.6)
Le reste de la requête est la même. Cela retournera une liste de cartes, où la clé est l'alias de la "colonne".
Une autre solution serait de définir un objet de données juste pour l'affichage de ces résultats et de laisser Hibernate créer des instances de ces à la volée. Cette classe avait juste besoin d'un correspondant constructeur.
Exemple de classe (méthodes et les champs omis)
La requête serait
Comme un résultat que vous désirez obtenir un
List
deInspectionCount
s.