测试grails属性是否延迟/未初始化?

时间:2011-04-21 14:38:10

标签: 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",   
         GrailsHibernateUtil.isInitialized(lazyUser, "preferences") )
}

1 个答案:

答案 0 :(得分:1)

你做得很好。

完全相同的代码片段对我有用 - 对于(子域对象的)集合属性,isInitialized()返回false和String属性 - true。也许FetchMode.LAZY不是保证 - 如果你要求一个简单的类型,它无论如何都会被提取。

什么是preferences'类型?