Много-табличные запросы в Hibernate

0
28 ноя 2017 20:03
Доброго времени суток!

Объясните как быть с много-табличными запросами в Hibernate.
Пока запросы и операции касались только одной таблицы(объектов одного типа (класса сущности)) никаких проблем не возникало, мы делая запрос заранее знаем какого типа объект нам должен вернуться, а следовательно все его свойства. Работать с такими объектами или создать для этого случая заранее таблицу (JTable) и вывести её не составляет труда.
Делал это вот так, к примеру:
public PogodaEntity getPogodaId(int id) throws SQLException {
        Session session=openTransactionSession();
 
        String hqlSelect="FROM PogodaEntity WHERE idPogoda=:id";
        Query query=session.createQuery(hqlSelect);
        query.setParameter("id",id);
        List pogoda=query.list();
        PogodaEntity pogodaId=(PogodaEntity)pogoda.get(0);
        closeTransactionSession();
        return pogodaId;
    }
//или
public List<PogodaEntity> getAllPogoda() throws SQLException {
        //open session with a transaction
        Session session=openTransactionSession();
 
        String sqlSelect="SELECT * FROM POGODA";
        //В createSQLQuery создаётся сам SQL запрос,с помощью addEntity указывается, какая сущность ожидается в результате.
        SQLQuery query=session.createSQLQuery(sqlSelect).addEntity(PogodaEntity.class);
        List<PogodaEntity> pogodaList=query.list();
 
        //close session with a transaction
        closeTransactionSession();
        return pogodaList;
    }


Но не знаю как быть если у нас много-табличный запрос (в MySQL связывание ч/з JOIN), здесь мы не можем вернуть какой-то определённый объект, результатом будет нечто. Как сохранить результат? Как с ним потом работать?
Подскажи как делаются такого типа запросы в Hibernate?

Ответов: 2

1
14 дек 2017 07:24
Например у тебя две таблицы/сущности: Bid, Item. Создай сущность ItemBidSummary и погугли насчёт @Subselect и @Synchronize.
0
14 дек 2017 09:44
Вопрос снят. У меня было неправильное представление о том на какой стадии и что должно делаться: я думал, что нужный результат должен формироваться на стадии формирования запроса, а на самом деле из запроса мы должны получить стандартные объекты типа класса сущностей, которые у нас существуют, а у же из этих объектов через поля, которые являются внешними ключами добираться и вытягивать ту информацию, которая нам нужна.
Модераторы: Нет
Сейчас эту тему просматривают: Нет