|
|
|
Проблема вложенности в JPA
|
|||
|---|---|---|---|
|
#18+
Добрый вечер. Имеем JPA 2 на Hibernate. Такая модель пример Есть сотрудник Каждый сотрудник относится к одному отделу Каждый отдел относится к одному филиалу Каждый филиал относится к одному городу Все связи есть ManyToOne и по умолчанию EAGER. Когда я пытаюсь получить всех сотрудников, то этот вызов приводит к куче дополнительных запросов дочерних сущностей JPA пытается загрузить данные для всего дерева класса сотрудник и по каждому объекту это происходит в отдельности. Как мне ему сказать, например, нужны сотрудники и отдел, что можно сделать простым LEFT JOIN но объекты ниже меня не интересуют? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2015, 21:05 |
|
||
|
Проблема вложенности в JPA
|
|||
|---|---|---|---|
|
#18+
zz5Все связи есть ManyToOne и по умолчанию EAGER. Начиная с Hibernate 2 все ассоциации по-умолчанию Lazy. Если вы их сконфигурировали на EAGER, то не удивляйтесь, что у вас в одном запросе вся база данных вычитывается. Для управлением загрузки ассоциаций используется Fetch/FetchMode как в HQL/JPQL JOIN-ах, так и в Critaria API. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2015, 19:08 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39025799&tid=2125086]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
186ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 466ms |

| 0 / 0 |
