
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.01.2012, 11:30:53
|
|||
|---|---|---|---|
что такое 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:40:30
|
|||
|---|---|---|---|
что такое JPA Weaving |
|||
|
#18+
Ну это, очевидно, фишка исключительно EclipseLink, а потому нет термина JPA Weaving, есть EclipseLink JPA Weaving. Из того, что там написано, следует, что это обычная инструментация - то есть либо создание динамических проксей для разных нужд(dynamic weaving), либо внедрение своего кода в ваши энтити в момент сборки проекта (static weaving). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.01.2012, 11:43:16
|
|||
|---|---|---|---|
что такое JPA Weaving |
|||
|
#18+
svenomлибо внедрение своего кода в ваши энтити в момент сборки проектачем то на DI похоже? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.01.2012, 11:46:05
|
|||
|---|---|---|---|
что такое JPA Weaving |
|||
|
#18+
Petro123svenomлибо внедрение своего кода в ваши энтити в момент сборки проектачем то на DI похоже?Не, с DI вообще никак не связано. Это по сути создание прокси на класс ... в самом классе, и не в runtime через bytecode instrumentation, а в compile time. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.01.2012, 12:22:08
|
|||
|---|---|---|---|
что такое JPA Weaving |
|||
|
#18+
svenomНу это, очевидно, фишка исключительно EclipseLink, а потому нет термина JPA Weaving, есть EclipseLink JPA Weaving. Из того, что там написано, следует, что это обычная инструментация - то есть либо создание динамических проксей для разных нужд(dynamic weaving), либо внедрение своего кода в ваши энтити в момент сборки проекта (static weaving). А можно по подробнее немного про создание "динамических проксей" - то собой физически представляет и какие преимущества дает. И про внедрение кода кода в энтити )) - здесь вообще непонятно это словосочетание. Заранее спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.01.2012, 12:47:42
|
|||
|---|---|---|---|
что такое JPA Weaving |
|||
|
#18+
1. Про динамические прокси - это классический AOP. Остановите в дебаггере свою программу и посмотрите на тип инициализированного поля. Вместо реального поля (имя классаа вашей сущности или какой-нибудь коллекции) вы увидите объект странного типа без кода. Это и есть прокси. В Хибере используется преимущественно для прозрачной подгрузки ленивых зависимостей. Какие преимущества это дает в EclipseLink - вопрос к разработчикам сего продукта. 2. Про статический вивинг - проследуйте шагам, описанным в приведенном вами документе, соберите свой проект. Потом посмотрите на код своих энтитией - он будет отличен от того, что было у вас изначально - Эклипс внесет нужные ему изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.01.2012, 12:48:19
|
|||
|---|---|---|---|
что такое JPA Weaving |
|||
|
#18+
svenomОстановите в дебаггере свою программу и посмотрите на тип не инициализированного поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.01.2012, 12:58:19
|
|||
|---|---|---|---|
что такое JPA Weaving |
|||
|
#18+
авторА можно по подробнее немного про создание "динамических проксей" - то собой физически представляет и какие преимущества дает. на русском на иностранном авторИ про внедрение кода кода в энтити )) - здесь вообще непонятно это словосочетание. Заранее спасибо) Допустим мы имплементируем паттерн ActiveRecord. У каждой entity должны быть статические методы find(), save(), delete() и т.п, с однообразным кодом, который различается только типом entity. Так как методы статические унаследоваться мы не можем, но не писать же все руками. Возможное решение - на этапе сборки, допустим при помощи специально написанного maven plugin, мы перебираем все классы с аннотацией Entity и генерим все эти методы, потом в коде мы можем использовать Person.find(), User.delete(1L) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2132824]: |
0ms |
get settings: |
14ms |
get forum list: |
29ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
74ms |
get topic data: |
23ms |
get forum data: |
6ms |
get page messages: |
90ms |
get tp. blocked users: |
3ms |
| others: | 343ms |
| total: | 596ms |

| 0 / 0 |
