Hibernate Native SQL Query для извлечения нескольких объектов в соединении

Обращаясь с этим ответом к этой взаимосвязанной теме, трюк, опубликованный ehrhardt, работает отлично.

Но что мне делать, если мне нужно объединить несколько объектов? например:

List<Person> peopleWithBooks = session.createSQLQuery(
    "select {p.*}, {b.*}, {m.*} from person p, book b, magazine m where <complicated join>")
        .addEntity("p", Person.class)
        .addJoin("b", "p.books")
        .addJoin("m", "p.magazines")
        .addEntity("p", Person.class)
        .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
        .list();

Hibernate объединяет сразу первое соединение, но не второе (сущности журнала не группируются).

Есть какие-то хитрости или есть предел для объединения только с одной коррелированной сущностью? А если мне нужно объединиться с сущностями, у которых есть дочерние сущности? (моя цель - извлечь все выбранные данные с помощью только одного пользовательского запроса)

0 ответов

Другие вопросы по тегам