@Autowired
@Qualifier("dashbSqlSessionFactory")
private SqlSessionFactoryBean dashbSqlSessionFactory;
@RequestMapping(value = "/clearcache", method = RequestMethod.POST)
public @ResponseBody void clearCache() throws Exception{
//System.out.println("Cache is cleared.................");
Configuration configuration = dashbSqlSessionFactory.getObject().getConfiguration();
Collection<Cache> caches = configuration.getCaches();
for (Cache cache : caches) {
/*System.out.println("cache Name: "+cache);
cache.removeObject("keyEquipmentShiftAutomatedModelData");*/
/*Lock w = cache.getReadWriteLock().writeLock();
w.lock();
try { */
cache.clear();
/*} finally {
w.unlock();
}*/
}
}
Mybatisマッパーxmlで
<cache
eviction="FIFO"
size="512"
readOnly="true"/>
上記のコードに従って、キャッシュがセッション レベルで単一のユーザーに固有であると予想していますが、他のユーザーがシステムにログインするとキャッシュが上書きされます。私の理解によれば、両方が異なるセッションを持っているためdashbSqlSessionFactory.getObject().getConfiguration();
Collection<Cache> caches = configuration.getCaches();
、他のセッションでユーザーのキャッシュを取得しないでください。私のコードに問題はありますか