#hibernate #grails #groovy #grails-orm #lazy-initialization
#переход в спящий режим #grails #groovy #grails-orm #отложенная инициализация
Вопрос:
Кажется, я не могу проверить, является ли объект ленивой инициализацией. Что я здесь делаю не так?
public void testLazy(){
User lazyUser = User.withCriteria {
like("userId", 'test')
fetchMode("preferences", FetchMode.LAZY )
}.get(0)
assertFalse( "DOM objects of user were not lazy initialized",
GrailsHibernateUtil.isInitialized(lazyUser, "preferences") )
}
Ответ №1:
Вы все делаете правильно.
У меня сработал точно такой же фрагмент кода — для isInitialized()
возвращаемого false
свойства collection (дочерних объектов домена) и для строкового свойства — true
. Возможно, FetchMode.LAZY
это не гарантия — если вы запрашиваете простой тип, он все равно извлекается.
Что такое preferences
‘ тип?
Комментарии:
1. Это объект с правильным графом объектов. Ой. Я использую grails 1.3.6 — что используете вы?
2. Я на версии 1.3.5. Что, если вы включите ведение журнала SQL, какие запросы будут в журнале? Что, если вы попробуете это и в свойстве collection?