|
|
|
что такое JPA Weaving
|
|||
|---|---|---|---|
|
#18+
Читаю здесь Там единственное предложение поясняющее суть : The EclipseLink JPA persistence provider uses weaving to enhance JPA entities for such things as lazy loading, change tracking, fetch groups, and internal optimizations. А кто нибудь знает более подробно про "lazy loading, change tracking, fetch groups, and internal optimizations. " и как это все работает с JPA_Weaving и без него? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 11:30:53 |
|
||
|
что такое JPA Weaving
|
|||
|---|---|---|---|
|
#18+
Ну это, очевидно, фишка исключительно EclipseLink, а потому нет термина JPA Weaving, есть EclipseLink JPA Weaving. Из того, что там написано, следует, что это обычная инструментация - то есть либо создание динамических проксей для разных нужд(dynamic weaving), либо внедрение своего кода в ваши энтити в момент сборки проекта (static weaving). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 11:40:30 |
|
||
|
что такое JPA Weaving
|
|||
|---|---|---|---|
|
#18+
svenomлибо внедрение своего кода в ваши энтити в момент сборки проектачем то на DI похоже? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 11:43:16 |
|
||
|
что такое JPA Weaving
|
|||
|---|---|---|---|
|
#18+
Petro123svenomлибо внедрение своего кода в ваши энтити в момент сборки проектачем то на DI похоже?Не, с DI вообще никак не связано. Это по сути создание прокси на класс ... в самом классе, и не в runtime через bytecode instrumentation, а в compile time. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 11:46:05 |
|
||
|
что такое JPA Weaving
|
|||
|---|---|---|---|
|
#18+
svenomНу это, очевидно, фишка исключительно EclipseLink, а потому нет термина JPA Weaving, есть EclipseLink JPA Weaving. Из того, что там написано, следует, что это обычная инструментация - то есть либо создание динамических проксей для разных нужд(dynamic weaving), либо внедрение своего кода в ваши энтити в момент сборки проекта (static weaving). А можно по подробнее немного про создание "динамических проксей" - то собой физически представляет и какие преимущества дает. И про внедрение кода кода в энтити )) - здесь вообще непонятно это словосочетание. Заранее спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 12:22:08 |
|
||
|
что такое JPA Weaving
|
|||
|---|---|---|---|
|
#18+
1. Про динамические прокси - это классический AOP. Остановите в дебаггере свою программу и посмотрите на тип инициализированного поля. Вместо реального поля (имя классаа вашей сущности или какой-нибудь коллекции) вы увидите объект странного типа без кода. Это и есть прокси. В Хибере используется преимущественно для прозрачной подгрузки ленивых зависимостей. Какие преимущества это дает в EclipseLink - вопрос к разработчикам сего продукта. 2. Про статический вивинг - проследуйте шагам, описанным в приведенном вами документе, соберите свой проект. Потом посмотрите на код своих энтитией - он будет отличен от того, что было у вас изначально - Эклипс внесет нужные ему изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 12:47:42 |
|
||
|
что такое JPA Weaving
|
|||
|---|---|---|---|
|
#18+
svenomОстановите в дебаггере свою программу и посмотрите на тип не инициализированного поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 12:48:19 |
|
||
|
что такое JPA Weaving
|
|||
|---|---|---|---|
|
#18+
авторА можно по подробнее немного про создание "динамических проксей" - то собой физически представляет и какие преимущества дает. на русском на иностранном авторИ про внедрение кода кода в энтити )) - здесь вообще непонятно это словосочетание. Заранее спасибо) Допустим мы имплементируем паттерн ActiveRecord. У каждой entity должны быть статические методы find(), save(), delete() и т.п, с однообразным кодом, который различается только типом entity. Так как методы статические унаследоваться мы не можем, но не писать же все руками. Возможное решение - на этапе сборки, допустим при помощи специально написанного maven plugin, мы перебираем все классы с аннотацией Entity и генерим все эти методы, потом в коде мы можем использовать Person.find(), User.delete(1L) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 12:58:19 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37617823&tid=2132824]: |
0ms |
get settings: |
18ms |
get forum list: |
29ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
59ms |
get topic data: |
24ms |
get forum data: |
5ms |
get page messages: |
99ms |
get tp. blocked users: |
2ms |
| others: | 380ms |
| total: | 632ms |

| 0 / 0 |
