Java Guava缓存数据加载问题

Java Guava缓存数据加载问题,java,caching,google-guava-cache,Java,Caching,Google Guava Cache,我在hibernate平台上编写的应用程序中使用了番石榴缓存。问题是我的缓存在加载数据时无法正常工作。当我删除或添加新数据时,它不会快速更新 private void initializeCache() { CacheLoader<String, List<~My Data Type~>> cacheLoader = new CacheLoader<String, List<~My Data Type~>>()

我在hibernate平台上编写的应用程序中使用了番石榴缓存。问题是我的缓存在加载数据时无法正常工作。当我删除或添加新数据时,它不会快速更新

    private void initializeCache()
      {
        CacheLoader<String, List<~My Data Type~>> cacheLoader = new CacheLoader<String, List<~My Data Type~>>()
        {
          @Override
          public List<~My Data Type~> load(String key) throws Exception
          {
            return loadingCache.get(key);
          }
        };

    this.loadingCache = CacheBuilder.newBuilder().expireAfterAccess(5, TimeUnit.MINUTES).build(cacheLoader);
  }
private void initializeCache()
{
CacheLoader CacheLoader=新的CacheLoader()
{
@凌驾
公共列表加载(字符串键)引发异常
{
返回loadingCache.get(key);
}
};
this.loadingCache=CacheBuilder.newBuilder().expireAfterAccess(5,TimeUnit.MINUTES).build(cacheLoader);
}
这是我将数据加载到服务器端的方式

 public List<~My Data Type~> findByIds(final List<String> ids) throws SpiderException
  {
    final List<~My Data Type~> datas = new ArrayList<>();
    if (loadingCache.asMap().isEmpty())
    {
      final List<~My Data Type~> loaded = loadById(ids);
      if (loaded != null && !loaded.isEmpty())
      {
        loadingCache.putAll(
            loaded.stream().collect(Collectors.groupingBy(~My Data Type~::getId, Collectors.toList())));
      }
    }

    final ImmutableMap<String, List<~My Data Type~>> allPresent = loadingCache.getAllPresent(ids);
    for (Entry<String, List<~My Data Type~>> myData : allPresent.entrySet())
    {
      datas.addAll(myData .getValue());
    }

    return datas;
  }
公共列表findByIds(最终列表id)抛出SpiderException
{
最终列表数据=新的ArrayList();
if(loadingCache.asMap().isEmpty())
{
加载的最终列表=loadById(ids);
if(loaded!=null&!loaded.isEmpty())
{
loadingCache.putAll(
loaded.stream().collect(Collectors.groupingBy(~My Data Type~::getId,Collectors.toList());
}
}
final ImmutableMap allPresent=loadingCache.getAllPresent(ids);
对于(条目myData:allPresent.entrySet())
{
addAll(myData.getValue());
}
返回数据;
}

此外,我在保存或删除数据时不使用缓存。有人能解释一下这个问题的原因吗?是不是番石榴缓存有问题?

番石榴缓存有一些中断。请检查