一、注意點一:
在用戶、角色、用戶角色關係表 中,各個關係應該放在哪個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的二級緩存,那麼緩存中的對象,如果有手動修改對象屬性的情況,那麼緩存中對象的值也會變化。
意味着,如果第二次請求,獲取緩存中的數據,則會獲取修改後的數據。
在開發中,要注意。 特別是有些輔助字段的使用,因爲有些地方,輔助字段的值會根據不同的情況,進行變化。
那麼這種情況在獲取緩存中的值,則需要對輔助字段進行初始化。