Использование FetchMode.SELECT с FetchType.EAGER в HibernateJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Использование FetchMode.SELECT с FetchType.EAGER в Hibernate

Сообщение Гость »


У меня есть две сущности: страница и комментарий

страница общедоступного класса{ частный внутренний идентификатор; частные комментарии List = new ArrayList(); @OneToMany(mappedBy = "страница") public List getComments() {возврат комментариев} } общественный класс Комментарий { частный внутренний идентификатор; частная строка msgText; личная страница Страницы; @ManyToOne @JoinColumn(name="page_id") общедоступная страница getPage() { возвратная страница } } На странице хранится коллекция комментариев. Каждый раз, когда я получаю страницу, я хочу, чтобы все комментарии загружались вместе с ней, поэтому мне нужно использовать FetchType.EAGER. По умолчанию используется FetchMode.JOIN

Проблема в том, что JOIN портит нумерацию страниц - когда я устанавливаю ограничение на 5, я получаю первое сообщение, а также 4 комментария (или 5 комментариев, я забыл). Вместо этого я должен получить первые 5 сообщений, а также все их комментарии.

Поэтому вместо этого я решил использовать FetchMode.SELECT.

Мои вопросы:
[*]Какова разница в производительности между FetchMode.SELECT вместе с FetchType.EAGER и FetchMode.JOIN? [*]Я знаю, что FetchType.LAZY может привести к проблеме с запросами N+1, если я последовательно вызываю getComments() для коллекции сущностей Page. Возникает ли эта проблема при использовании FetchMode.SELECT с FetchType.EAGER? (т. е. когда я загружаю коллекцию страниц, сколько запросов она будет сделать, чтобы немедленно загрузить все связанные с ними комментарии?) [*]Есть ли смысл использовать размер пакета с FetchMode.SELECT и FetchType.EAGER?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как переопределить FetchType.EAGER, чтобы он был ленивым во время выполнения
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Как переопределить fetchtype.eager, чтобы быть ленивым во время выполнения
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как переопределить fetchtype.eager, чтобы быть ленивым во время выполнения
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как переопределить fetchtype.eager, чтобы быть ленивым во время выполнения
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как работает FetchMode в Spring Data JPA
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»