somePerson.getFriend().getName();
somePerson.getFriend().getAge();
somePerson.getFriend().getGender();
somePerson.getFriend().getFather().getName();
這5行代碼如果運行一次的話會進行5次查詢,如果反復循環運行會更多,但其中的前4次都是重復的。somePerson.getFriend().getAge();
somePerson.getFriend().getGender();
somePerson.getFriend().getFather().getName();
如果使用0.7.5版產生的源碼,這樣的代碼運行一次只會進行必要的兩次查詢,而且如果反復循環運行的話也只會運行這必要的兩次查詢。
關于對象共享,在之前的版本中,是沒有任何對象共享的,用同樣的主鍵進行findByPk查詢所得到的對象是不同的,這在對程序中數據進行同步的實現上增加了復雜度。而使用0.7.5版所生成的源碼,可以保證這樣的對象是相同的(不是相等而是相同),而且從別的find方法查詢到的相同主鍵的對象也能保證是唯一的(findFree,自定義find,自定義集合),新版中加入了一個WeakValueMap類對這些對象進行管理,利用弱引用技術在不干涉垃圾回收的情況下對數據庫對象進行高效率的共享和緩存管理。下載地址在http://www.aygfsteel.com/Files/kobe2000/sdo0.7.5.rar