gpt4 book ai didi

spring - @cacheput 不更新现有缓存

转载 作者:行者123 更新时间:2023-12-04 19:53:21 32 4
gpt4 key购买 nike

我正在使用 Spring 4 和 Hazelcast 3.2。我正在尝试使用以下代码向现有缓存添加新记录。不知何故缓存没有得到更新,同时我也没有看到任何错误。下面是代码片段供引用。

注意:- Cacheable 工作正常,只有 cacheput 不起作用。请对此有所了解

@SuppressWarnings("unchecked")`enter code here`
@Transactional(readOnly = true, propagation = Propagation.REQUIRED)
@Cacheable(value="user-role-data")
public List<User> getUsersList() {
// Business Logic
List<User> users= criteriaQuery.list();

}

@SuppressWarnings("unchecked")
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
@CachePut(value = "user-role-data")
public User addUser(User user) {
return user;

}

最佳答案

我遇到了同样的问题并设法解决了它。这个问题似乎与事务管理有关。
由于事务未提交,因此在创建或更新新记录的相同方法中基本更新缓存不起作用。这是我解决它的方法。

服务层调用repo插入用户
然后回到服务层
在插入/更新数据库调用之后
在服务层我调用了一个刷新缓存方法
返回用户数据并且此方法具有 cacheput 注释
在那之后它起作用了。

关于spring - @cacheput 不更新现有缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33155037/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com