更新缓存中的项目,然后再次调用 findAll 项目不会更新该项目



我创建了两个使用Spring Cacheservices。在第一个方法中,我将应用程序启动时制作的所有记录:

   @CachePut(value = "items")
    public Item save(Item item){
        System.out.println("----------------- z cachea udated" + item);
        return itemRepository.saveAndFlush(item);
    }

因此,当应用程序以第一步运行时,我会填充我的cache。然后我得到所有记录:

 @Cacheable(value = "items")
    public Page<Item> getItems(Pageable pageRequest){
        System.out.println("----------------- z cachea PAGEABLE");
        Page<Item> all = itemRepository.findAll(pageRequest);
        System.out.println("----------------- all" + all.getContent());
        return all;
    }

然后,我仅使用save()方法更新一个记录,然后再次获取所有记录。在那一刻,我的cache根本没有改变。在cache内部,所有方法中的所有记录都是方法。如何在cache内更改仅由更新影响的记录?

尝试将@Cacheable(value = "items")更改为@Cacheable(value="items", key="all")

最新更新