powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает JPA
11 сообщений из 11, страница 1 из 1
Как работает JPA
    #39193416
KeySee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Подскажите пожалуйста, при выполнении запроса Country.findById, select происходит только по таблице Country, или же происходит запрос включая все таблицы связанные по ключам? Если вызвать метод getCity объекта класса Country, происходит запрос в таблицу City или города изначально запрашиваются вместе с Country ?
...
Рейтинг: 0 / 0
Как работает JPA
    #39193418
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KeySee,

Зависит от того как вы указали ваши ассоциации в маппинге. По-умолчанию они ленивые и происходит запрос только по Country.
...
Рейтинг: 0 / 0
Как работает JPA
    #39193427
KeySee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Спасибо
...
Рейтинг: 0 / 0
Как работает JPA
    #39194060
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczПо-умолчанию они ленивые и происходит запрос только по Country.

По умолчанию ленивыми были только коллекции.
...
Рейтинг: 0 / 0
Как работает JPA
    #39194066
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir KПо умолчанию ленивыми были только коллекции.
Точно. Тупанул. Спасибо.
http://docs.oracle.com/javaee/5/api/javax/persistence/ManyToOne.html#fetch() Default:
EAGER
...
Рейтинг: 0 / 0
Как работает JPA
    #39194076
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Но еще всегда зависит от реализации, ибо нужно помнить про вложенность. Например, в хибере можно указать
Код: xml
1.
<property name="hibernate.max_fetch_depth" value="3"/>

Не помню, есть ли стандартный параметр в JPA.

Но, мне кажется, что почти все стараются переопределять аннотацию, делая все лейзи по умолчанию, а затем управляя загрузкой через JPA Query или CriteriaBuilder. Так что по жизни, все верно
...
Рейтинг: 0 / 0
Как работает JPA
    #39194095
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir K,

Для ManyToOne, ведь, не достаточно просто указать Lazy. Нужно ещё чтобы свойства сущности могли проксироваться для работы этого самого Lazy. Интересно что JPA спека по этому поводу говорит?
...
Рейтинг: 0 / 0
Как работает JPA
    #39194693
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczVladmir K,

Для ManyToOne, ведь, не достаточно просто указать Lazy. Нужно ещё чтобы свойства сущности могли проксироваться для работы этого самого Lazy. Интересно что JPA спека по этому поводу говорит?

Вот пример с работающего приложения:
Код: java
1.
2.
3.
4.
5.
@OneToOne(cascade = CascadeType.REMOVE, fetch = FetchType.LAZY, targetEntity = DocFileImpl.class)
  @JoinColumn(name = "docFile_id")
  public DocFile getDocFile() {
    return docFile;
  }


Использую хибер в качестве реализации JPA. @OneToOne работает так же, как и @ManyToOne.
DocFile не грузится сразу, отлично проксируется.
...
Рейтинг: 0 / 0
Как работает JPA
    #39194706
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir KВот пример с работающего приложения:

Маппинг на возможность проксирования никак не влияет. Поэтому не очень понял зачем он тут.

Vladmir KDocFile не грузится сразу, отлично проксируется.
Через интерфейс, CGLIB или javassist?
...
Рейтинг: 0 / 0
Как работает JPA
    #39194727
Vladmir K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczМаппинг на возможность проксирования никак не влияет. Поэтому не очень понял зачем он тут.
Я других настроек не делал. Работает по умолчанию.
Просто хотел продемострировать, что изменение аннотации по умолчанию работает ожидаемо.


BlazkowiczЧерез интерфейс, CGLIB или javassist?
Из коробки идет javassist.
...
Рейтинг: 0 / 0
Как работает JPA
    #39194733
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladmir KBlazkowiczЧерез интерфейс, CGLIB или javassist?
Из коробки идет javassist.
Блин, ну да. Hibernate же. Чет я совсем тупой уже стал. Спутал темы.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как работает JPA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]