Hibernate查询结果

时间:2010-08-05 09:14:12

标签: hibernate

我的应用程序中有以下查询: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是一张桌子,上面有外键和入口。我不知道如何在不使用索引的情况下访问此列表的元素,因为我不知道我处理的对象类型是什么。实施搞砸了 - 如何正确地完成?我应该使用哪种对象来存储来自数据库的不同表中的数据,以便能够在应用程序中使用它们? 感谢帮助!

1 个答案:

答案 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属性访问您的地图,例如..