@Cacheable(cacheNames = "BooksCache", key = "#id")
public Book findById(long id) {
LOGGER.info("Fetching Book From DB For BookId: {}", id);
return bookRepository.findById(id).orElse(null);
}
可缓存的工作正常,但当我们添加新图书或更新现有图书时,缓存不更新
下面是saveOrUpdate()的代码,我使用了@CachePut更新该高速缓存,但没有工作,数据库正在更新,但缓存没有更新
@Transactional
@CachePut(cacheNames = "BooksCache", key = "#book.id")
public Book saveOrUpdateBook(Book book) {
return bookRepository.save(book);
}
我已经尝试了@EnableTransactionManagement沿着@Transactional Annotation。我也尝试了spring Boot starter缓存而不是redis缓存,但是没有效果
1条答案
按热度按时间t9eec4r01#
你必须从另一个类调用@Cachable-方法。否则该高速缓存代理将无法工作,缓存也不会改变/触发。