|
|
|
FetchType.EAGER для ManyToOne
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста. Для зависимости OneToMany принято устанавливать fetch = FetchType.LAZY. То есть при загрузке сущности persistence manager не загружает сразу коллекцию, а только при явном обращении к ней. Что по поводу ManyToOne - можно для него ставить fetch = FetchType.EAGER? Например Код: java 1. 2. 3. 4. 5. По идее если мы загружаем Room, то связанную с ним сущность Home загрузить можно и сразу, потому что он один в данном случае. Но если по цепочке у этого Home будет Street, а у Street будет City, а у City будет Country и так далее, и везде будет FetchType.EAGER для ManyToOne - не вызовет это какую то цепную реакцию в базе, что загрузится слишком много в оперативную память? Есть у кого то опыт с такой ситуацией? Может ВСЕГДА ставить FetchType.LAZY ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2012, 13:24:16 |
|
||
|
FetchType.EAGER для ManyToOne
|
|||
|---|---|---|---|
|
#18+
osonчто по поводу ManyToOne - можно для него ставить fetch = FetchType.EAGER? для ManyToOne EAGER стоит по умолчанию. А вообще это зависит от того какие у вас объекты, насколько большим получится дерево объектов, и как часто вы ими будете пользоваться. То есть - все индивидуально. Рекомендации : http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/ The recommanded approach is to use LAZY on all static fetching definitions and override this choice dynamically through JP-QL. JP-QL has a fetch keyword that allows you to override laziness when doing a particular query. This is very useful to improve performance and is decided on a use case to use case basis. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2012, 14:55:53 |
|
||
|
FetchType.EAGER для ManyToOne
|
|||
|---|---|---|---|
|
#18+
Такой вот вопрос если можно. Например у нас зависимость обозначена как LAZY в конфиге. Теперь мы находимся в service методе, который обозначен как Transactional - То есть транзакция открывается перед первым оператором метода и закрывается после его выполнения (правильно?). Если у нас внутри метода есть запрос - из вашей ссылки - Код: java 1. Разве это не то же самое, что и Код: java 1. То есть если мы внутри транзакции, то вызов book.chapters через точку будет действовать точно также как book JOIN FETCH book.chapters - или нет? (Я имею ввиду конечно не то, что он возвращает в первом случае book, а во втором book.chapters) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2012, 17:35:17 |
|
||
|
FetchType.EAGER для ManyToOne
|
|||
|---|---|---|---|
|
#18+
очепятка Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2012, 17:36:16 |
|
||
|
FetchType.EAGER для ManyToOne
|
|||
|---|---|---|---|
|
#18+
Ссылочка не совсем ваша :) Вот она http://eubauer.de/kingsware/2011/02/10/override-fetch-type-in-jpql-queries/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2012, 17:37:29 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2130491]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
64ms |
get topic data: |
22ms |
get forum data: |
5ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 286ms |
| total: | 494ms |

| 0 / 0 |
