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

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

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

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

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

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

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

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

Для ManyToOne, ведь, не достаточно просто указать Lazy. Нужно ещё чтобы свойства сущности могли проксироваться для работы этого самого Lazy. Интересно что JPA спека по этому поводу говорит?
...
Рейтинг: 0 / 0
17.03.2016, 17:08
    #39194693
Vladmir K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает JPA
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
17.03.2016, 17:12
    #39194706
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает JPA
Vladmir KВот пример с работающего приложения:

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

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


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


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