我创建了两个使用Spring Cache
的services
。在第一个方法中,我将应用程序启动时制作的所有记录:
@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")