Eclipselink, как лениво загружать @Lob

Согласно документации @Basic. По умолчанию EclipseLink JPA игнорирует атрибут fetch и по умолчанию javax.persistence.FetchType.EAGER.

Как изменить значение по умолчанию, чтобы оно загружалось лениво?

http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Mapping/Basic_Mappings/Lazy_Basics


person Kris    schedule 19.12.2012    source источник


Ответы (2)


Извините, эта документация неверна и запутана. Я только что обновил его.

По умолчанию LAZY на @Basic будет работать, пока включено переплетение. Плетение включено по умолчанию в JavaEE и JavaSE при использовании агента EclipseLink. Если вы находитесь в JavaSE и не можете использовать агент, вы можете использовать статическое переплетение.

person James    schedule 19.12.2012

В ссылке, которую вы разместили, также указано, что ленивые сопоставления с основами и без коллекций игнорируются, если плетение не используется. Weaving (через агент времени выполнения или статический weaver) позволяет изменить байтовый код, чтобы добавить код, необходимый для ленивой загрузки. Поэтому попробуйте использовать переплетение, как описано здесь http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Performance/Weaving

person Chris    schedule 19.12.2012