目前我正在从Hibernate查询中获取对象列表
我的代码是:
session.createSQLQuery("SELECT c.EMP_ID, COUNT(*) FROM employee c WHERE c.CITY=:someCity")
List<Object[]> objList =myQuery.list();
这里我只得到两个参数EMP_ID和COUNT
有没有办法让我可以映射 像
Map<int empId, int count> objList =myQuery.someMethod();
答案 0 :(得分:2)
您可以按如下方式更改查询:
&#34;选择新地图(c.EMP_ID为empId,COUNT(*)为empCount)FROM employee c WHERE c.CITY =:someCity&#34;
现在,这将返回带有密钥right_op
&amp;的地图列表。 empId
。
以下是快速代码段:
empCount
输出:
List<?> objList = session.createQuery("SELECT new map(c.EMP_ID as empId,
COUNT(*) as empCount) FROM employee c WHERE c.CITY=:someCity").list();
Iterator<?> myRows = objList.iterator();
while (myRows.hasNext()) {
Map row = (Map) myRows.next();
System.out.println(row);
}
答案 1 :(得分:1)
当您使用createSQLQuery
时,它将为您提供两个长度数组的结果集。您必须手动构建地图,如下所示
for(Object[] row : objList ) {
map.put(row[0], row[1]);
}