2

我正在使用项目 ID 来识别缓存数据,如下所示:

@CachePut(value = "users", key = "#p0.id")
@RequestMapping(value = "/user", method = RequestMethod.PUT)
public User updateUser(@RequestBody User user);

函数 create new Item 创建后返回项目 ID。创建新项目后如何将项目保存到缓存中?

@Cacheable(value = "users", key = "???")
@RequestMapping(value = "/user", method = RequestMethod.POST)
public User createUser(@RequestBody User user);
4

3 回答 3

1

我建议创建服务类并将所有这些方法放入其中。同样在 store 方法(在你的情况下为 createUser 方法)你应该放 annotation @CachePut(value = "user", key = "#user.id")

像这样的东西:

@CachePut(value = "user", key = "#user.id")
public User createUser(User user) { 
   // store user in db...
}

试试上面的代码。

于 2018-11-26T09:56:56.767 回答
1

使用@CachePut

@CachePut(value = "users", key = "#result.id"")
@RequestMapping(value = "/user", method = RequestMethod.POST)
public User createUser(@RequestBody User user);
于 2018-11-26T09:53:15.347 回答
1

使用 @CachePut 创建新项目。

您可以参考这里了解@CachePut 和@Cacheable 之间的区别: Spring Cacheable vs CachePut?

于 2018-11-26T10:00:05.530 回答