【发布时间】:2023-03-15 08:50:01
【问题描述】:
我想第一次从数据库中获取计数,然后更新本地缓存中的计数。对于任何进一步的请求,我需要为每个请求更新内存计数器变量并使用更新后的计数。
我使用了 Ehcache,下面是我从数据库中获取的代码:
@Override
@CachePut(cacheNames="countCache", key="#id")
public int getCountFromDB(int id, int length) {
String sqlstm = "select count(*) from Table where length=:length";
Map<String, Object> namedParamsMap = new HashMap<String, Object>();
namedParamsMap.put("idd", idd);
namedParamsMap.put("length", length);
Integer li = namedParamJdbcTemplate.queryForObject(sqlstm, namedParamsMap, Integer.class);
return li;
}
2。我需要用计数器值更新这个缓存名称。我尝试使用以下方法:
@CachePut(value = "countCache", key = "#id")
public long updateCounterCache(int id, long count)
{
logger.error("In side ht thew updateCounterCache method "+count);
return count;
}
如果我用新计数调用updateCounterCache,则缓存中的计数器不会更新。我哪里错了。
【问题讨论】: