引用topic如何通过代码手动清除mybatis缓存我偶然发现了TransactionalCache的问题,这是唯一的MyBatis缓存类型,它通过在每个缓存上调用clear()
来清除由sqlSessionFactory.getConfiguration().getCaches
特别是org.apache.ibatis.cache.decorators.TransactionalCache
private Map<Object, Object> entriesToAddOnCommit;
private Set<Object> entriesMissedInCache;
正在保存密钥和值,这些密钥和值应该在提交时进行控制,并且尚未缓存。到现在为止还挺好。
在我的选择中,两者都应该在cache.clear()
上清除,但负责任的clear
方法永远不会被调用
@Override
public void clear() {
clearOnCommit = true;
entriesToAddOnCommit.clear();
}
这是一个错误还是有任何解释或建议如何刷新TransactionalCache?