MyBatisにはローカルキャッシュ(SqlSession側にあるキャッシュ)と、2次キャッシュ(SqlSessionFactory側にあるキャッシュ)があります。
ローカルキャッシュは sqlSession.clearCache()
でいいんですが、2次キャッシュの消し方がなかなか分からず、、我流で下記のようなコードを書きました。
for (Cache cache : sqlSessionFactory.getConfiguration().getCaches()) {
cache.clear();
}
まるっと全て消すコードになります。消す理由が自動テストのためだったので問題はないですが、そもそも有効・無効を切り替えられるように頑張った方がいいかなー。。