我的应用程序中有以下查询:v
public List getLocation(String id) {
List object = null;
try {
org.hibernate.Transaction tx = session.beginTransaction();
Query q = session.createQuery("from Entrancestolocations as EL left join EL.entrances as E left join EL.location as L where L = " + id);
object = (List) q.list();
} catch (Exception e) {
e.printStackTrace();
}
return object;
}
此查询的结果是一个列表。 Entrancestolocations是一张桌子,上面有外键和入口。我不知道如何在不使用索引的情况下访问此列表的元素,因为我不知道我处理的对象类型是什么。实施搞砸了 - 如何正确地完成?我应该使用哪种对象来存储来自数据库的不同表中的数据,以便能够在应用程序中使用它们? 感谢帮助!
答案 0 :(得分:0)
我只使用Hibernate工作了一个月,但我认为你应该使用一个对象数组的列表:
List<Object[]> objects = null;
添加地图: 映射myMap = new HashMap();
例如,如果您想按字段x访问结果:只需将其添加到查询中即可。
...CreateQuery("Select Table.x Table2.y from ..... where id = "
);
尝试{ org.hibernate.Transaction tx = session.beginTransaction(); 查询q = session.createQuery(“来自Entrancestolocations,因为EL左连接EL.entrances为E左连接EL.location为L,其中L =”+ id);
objects = (List<Object[]>) q.list();
} catch (Exception e) {
e.printStackTrace();
}
for(Object[] o : objects){// o[0] is each x of Table1 and o[1] is each y of Table2
myMap[(String)o[0]] = (String)o[1];
}
return myMap;
您现在可以通过x属性访问您的地图,例如..