Hibernate 测试grails属性是否为惰性/未初始化?

Hibernate 测试grails属性是否为惰性/未初始化?,hibernate,grails,groovy,gorm,lazy-initialization,Hibernate,Grails,Groovy,Gorm,Lazy Initialization,我似乎无法测试对象是否是惰性初始化的。我做错了什么 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",

我似乎无法测试对象是否是惰性初始化的。我做错了什么

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") )
}

你做得很好

完全相同的代码段适用于我-对于集合(子域对象)属性,
isInitialized()
返回
false
,对于字符串属性-
true
。也许
FetchMode.LAZY
不能保证-如果您请求的是简单类型,它无论如何都会被获取


什么是
首选项
”类型?

它是具有适当对象图的对象。氧指数。我在使用Grails1.3.6-你在使用什么?我在使用1.3.5。如果启用SQL日志记录,日志中会有哪些查询?如果您也在集合属性上尝试它,会怎么样?