Результат запроса Hibernate - PullRequest
0 голосов
/ 05 августа 2010

У меня есть следующий запрос в моем приложении: 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 голосов
/ 05 августа 2010

Я работал в течение месяца только с Hibernate, но я думаю, что вам, возможно, следует использовать список массивов объектов:

    List<Object[]> objects = null;

добавить карту: Map myMap = new HashMap ();

Например, если вы хотите получить доступ к результатам по полю x: просто добавьте это к вашему запросу.

...CreateQuery("Select Table.x Table2.y from ..... where id = ");

try {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 ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...