Posted at

MyBatisで2次キャッシュを全部消す

More than 3 years have passed since last update.

MyBatisにはローカルキャッシュ(SqlSession側にあるキャッシュ)と、2次キャッシュ(SqlSessionFactory側にあるキャッシュ)があります。

ローカルキャッシュは sqlSession.clearCache() でいいんですが、2次キャッシュの消し方がなかなか分からず、、我流で下記のようなコードを書きました。

for (Cache cache : sqlSessionFactory.getConfiguration().getCaches()) {

cache.clear();
}

まるっと全て消すコードになります。消す理由が自動テストのためだったので問題はないですが、そもそも有効・無効を切り替えられるように頑張った方がいいかなー。。