mybatis二級緩存注意點

一、注意點一:

在用戶、角色、用戶角色關係表 中,各個關係應該放在哪個mapper.xml中。

這個是必須要考慮的,也就是常說的 業務隔離。


mybatis的二級緩存是對應到 namespace的,所以刷新緩存,只會對當前的namespace有效。




現在有個業務:在角色下添加用戶。

那麼這個添加用戶的方法,肯定是放在user_role_mapper.xml中。


緊接着,需要查詢某個角色下的用戶。

那這個查詢用戶的方法 是放在哪個xml中呢?

這裏就需要慎重考慮了。


如果放在user_mapper.xml  或者 role_mapper.xml裏面,這裏就有問題了.

第一次查詢是沒問題的,但是當在某個角色下新增了某個用戶,此時緩存刷新只會刷新user_role_mapper.xml相關的。

user_mapper.xml 和 role_mapper.xml是不會刷新的。 所以導致 再次查詢,還是之前未添加的數據。


這裏就出問題了。

所以 在設計的時候,需要考慮業務的隔離,業務的相關性。以及與代碼的整合。





二、注意點二:

            後臺用了mybatis的二級緩存,那麼緩存中的對象,如果有手動修改對象屬性的情況,那麼緩存中對象的值也會變化。

意味着,如果第二次請求,獲取緩存中的數據,則會獲取修改後的數據。

在開發中,要注意。 特別是有些輔助字段的使用,因爲有些地方,輔助字段的值會根據不同的情況,進行變化。 

那麼這種情況在獲取緩存中的值,則需要對輔助字段進行初始化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章