Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate: как построить запрос, Как получить нужную иерархию объектов 
:(
    Опции темы
TopaZ
Дата 11.1.2011, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 17.5.2008

Репутация: нет
Всего: нет



Доброго времени суток!

Пытаюсь получить иерархию из 3 сущностей связанных друг с другом ассоциацией OneToMany.
Section.java 
Код

public class Section {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    @Column(name = "id", unique = true, nullable = false)
    private Long id;

    
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "section", cascade = CascadeType.ALL)
    private List<Block> blocks;
}

Код

public class Block {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    @Column(name = "id", unique = true, nullable = false)
    private Long id;

    @ManyToOne(fetch = FetchType.LAZY)
    @ForeignKey(name = "section_fk")
    @JoinColumn(name = "section_fk", nullable = false)
    private Section section;

    
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "block", cascade = CascadeType.ALL)
    private List<Element> elements;
}


Код

public class Element{
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    @Column(name = "id", unique = true, nullable = false)
    private Long id;

    @ManyToOne(fetch = FetchType.LAZY)
    @ForeignKey(name = "block_fk")
    @JoinColumn(name = "block_fk", nullable = false)
    private Block block;

    @Column(name = "name", nullable = false)
    private String name;

    @Column(name = "description")
    private String description;

    }


Так вот мне нужно выбрать на основе некоторого критерия определенные объекты Element, но сгруппированные в объекты Block, которые в свою очередь сгруппированы в соответсвующих им объектах Section.
Вроде бы ничего сложного. Но когда я получаю List<Section> в результате запроса и начинаю по нему итерировать, то вложенный список List<Block> содержит все связанные с текущей секцией объекты, а не только те, кот. подпадают под условие выборки.

Как можно реализовать подобный запрос?
PM MAIL   Вверх
emmanuil
Дата 20.1.2011, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 9.1.2007

Репутация: нет
Всего: 3



Нужно показать что делаешь, как пытаешься.
Ясно дело что будут все блоки, так как они по маппингу должны быть все для указанной секции. smile Начинай с низу вверх например, либо в маппинге условие для коллекции задать можно. Лучше выборку пусть сервер БД сделает, а не самому итерировать.
Напиши что ты хочешь получить, какую структуру объектов и что значит сгруппированые в блок?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0507 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.