iBATISNet包含兩個元件DataAccess和DataMapper, 以前的時候一直在用DataMapper(1.5.0),其中的lazyLoad功能使用起來沒什麼問題. 最近一個項目中開始結合使用DataAccess(1.9.1)元件來使用,主要是考慮到該元件能夠将資料持久層的具體實作隔離在統一的API之後.DAO(Data Access Object)允許我們建立簡單的元件以提供對資料的通路,同時又不會将實作的細節暴露給程式的其它部分(層).同時也可以使用不同的資料持久機制,如ADO.NET, iBatis, NHibernate等.
看上去很不錯,但不知為何,使用之後lazyLoad不能正常使用,我比較了一下兩個程式,發現主要的差别在于DataAccess的使用以及版本的不同,于是将DataAccess和DataMapper的版本分别改為1.8.1和1.5.1(即上一個版本),lazyLoad再無問題,這個實在搞不懂了.
目前隻能将版本回到過去了.也許是時候仔細閱讀iBatis的源碼了.另外,據官方網站稱,DataAccess的後續版本可能會被取消,那時可能要使用Castle等架構了 :-(
本文轉自一個程式員的自省部落格園部落格,原文連結:http://www.cnblogs.com/anderslly/archive/2007/07/21/lazyloaddoesnotwork.html,如需轉載請自行聯系原作者。