我正在使用商品ID来标识这样的缓存数据:
@CachePut(value = "users", key = "#p0.id")
@RequestMapping(value = "/user", method = RequestMethod.PUT)
public User updateUser(@RequestBody User user);
函数创建后创建新的Item返回项ID。创建新项目后如何将项目保存到缓存中?
@Cacheable(value = "users", key = "???")
@RequestMapping(value = "/user", method = RequestMethod.POST)
public User createUser(@RequestBody User user);
答案 0 :(得分:0)
使用@CachePut
@CachePut(value = "users", key = "#result.id"")
@RequestMapping(value = "/user", method = RequestMethod.POST)
public User createUser(@RequestBody User user);
答案 1 :(得分:0)
我建议创建服务类并将所有这些方法放入其中。
同样在store方法(在您的情况下为createUser方法)上,您应该添加注释
@CachePut(value = "user", key = "#user.id")
。
类似的东西:
@CachePut(value = "user", key = "#user.id")
public User createUser(User user) {
// store user in db...
}
尝试上面的代码。
答案 2 :(得分:0)
在创建新项目时使用@CachePut。
您可以参考@CachePut和@Cacheable之间的区别: Spring Cacheable vs CachePut?