2011-04-21 53 views
0

我似乎無法測試一個對象是否被延遲初始化。我在這裏做錯了什麼?測試grails屬性是懶惰還是未初始化?

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和一個String屬性 - true。也許FetchMode.LAZY不是保證 - 如果您要求簡單類型,則無論如何都會被抓取。

什麼是preferences'type?

+0

這是一個具有適當對象圖的對象。愛。我正在使用grails 1.3.6 - 你在用什麼? – 2011-04-22 03:47:43

+0

我在1.3.5。如果啓用SQL日誌記錄,那麼在日誌中有哪些查詢?如果您也嘗試收集財產呢? – 2011-04-22 07:28:22