假設我有一個User
對象,它由Usermapper
生成。 User
對象不知道任何關於正在使用的數據庫/存儲庫(我認爲這是一個好的設計)。與數據庫交互的函數的最佳做法
當創建User
時,我只想讓它由映射器填充最平凡的東西,例如,名稱,地址等。然而,在對象實例化之後,我可能有一個方法userX.getTotalDebt()
,getTotalDebt()
需要重新連接到數據庫,因爲我不希望爲每個用戶實例化(需要多個表等)完成相對昂貴的操作。如果我只是在getTotalDebt()
中插入一些sql,或者依賴項返回到Mapper
,那麼耦合度非常快地增長。
有一個明顯的好的/最好的做法,因爲這是一種情況經常出現,但我找不到,或者我從一個錯誤的角度看這個問題。
然後你/ ORM會在哪裏實現getTotalDebt()方法的功能?在Mapper的瞬間,具體地說 - 通過在數據庫中加入更多的表格?因爲我在您不喜歡透明代理/延遲加載方法的行之間閱讀。 – hbogert 2011-12-15 14:22:27