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

发布于 2024-11-02 20:53:26 字数 353 浏览 1 评论 0原文

我似乎无法测试对象是否延迟初始化。我在这里做错了什么?

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

I can't seem to test if an object is lazy initialized. What am I doing wrong here?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

落花随流水 2024-11-09 20:53:26

你做得很好。

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

首选项的类型是什么?

You're doing all right.

Exactly same code piece worked for me - for a collection (of child domain objects) property, isInitialized() returned false and for a String property - true. Maybe FetchMode.LAZY is not a guarantee - if you're requesting a simple type, it gets fetched anyway.

What is preferences' type?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文