@@cachable(cachenames =“ bookscache”,key =“ #id”) 公共图书FindbyId(长ID){ logger.info(“从db获取书籍的书籍:{}”,id); 返回

问题描述 投票:0回答:1
这里是SaveOrupDate()的代码,我使用@Cacheput来更新缓存,但这不起作用,数据库正在更新,但Cache却没有更新
    @Transactional
    @CachePut(cacheNames = "BooksCache", key = "#book.id")
    public Book saveOrUpdateBook(Book book) {
        return bookRepository.save(book);
    }
我尝试了@enabletransactionManagement和@transactional注释。 我还尝试了弹簧启动启动缓存而不是redis缓存, 但这不起作用

您必须从另一类调用 @Cachable-方法。否则,高速缓存代理将不起作用,并且缓存不会更改/触发。

您需要按照我的下面代码来遵循函数参数。

@CachePut(value="products", key="#a0") public Mono<Product> updateProduct(@PathVariable("prodId") String prodId, @RequestBody ProdInventoryDTO product){ log.info("Product associated with id : " + prodId + " updated in database."); return productservice.updateProduct(product, prodId); }
spring spring-boot spring-data-jpa spring-cache
1个回答
2
投票

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.