gpt4 book ai didi

caching - 外部刷新 MyBatis 缓存(映射器之外)

转载 作者:行者123 更新时间:2023-12-02 18:25:58 26 4
gpt4 key购买 nike

我正在使用 MyBatis,通过 <cache/> 激活二级缓存在 xml 映射器文件中。

假设我想与与 MyBatis 解耦的底层 DB/DataSource 进行交互,例如通过直接 jdbcTemplate。

当我通过 jdbcTemplate 在表上插入/更新/删除时,MyBatis 保存缓存的查询结果,如何确保 MyBatis 缓存得到适当的刷新。

换句话说,我如何强制 MyBatis 从 MyBatis 映射器外部刷新某些缓存命名空间的缓存?

我知道@Options(flushCache=true)注释,但这似乎在映射器接口(interface)之外不起作用。

最佳答案

您可以从配置中获取缓存,然后通过命名空间获取并清除它。

    @Resource
SqlSessionFactory sqlSessionFactory;

public void clearCacheByNamespace(){
Configuration config = sqlSessionFactory.getConfiguration();
Cache cache = config.getCache("com.persia.dao.UserInfoMapper");
if(cache != null){
cache.clear();
}
}

关于caching - 外部刷新 MyBatis 缓存(映射器之外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34769226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com