Spring cache при создании нового элемента - PullRequest
0 голосов
/ 26 ноября 2018

Я использую идентификатор элемента для идентификации данных кэширования следующим образом:

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

Функция создания нового идентификатора элемента возврата после создания.Как я могу сохранить элемент в кеш после создания нового элемента?

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

Ответы [ 3 ]

0 голосов
/ 26 ноября 2018

Я предлагаю создать класс обслуживания и поместить в него все эти методы.Также в методе store (в вашем случае метод createUser) вы должны поместить аннотацию @CachePut(value = "user", key = "#user.id").

Примерно так:

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

Попробуйте код выше.

0 голосов
/ 26 ноября 2018

Используйте @CachePut при создании новых элементов.

Вы можете сослаться на это для различий между @CachePut и @Cacheable: Spring Cacheable против CachePut?

0 голосов
/ 26 ноября 2018

Использование @ CachePut

@CachePut(value = "users", key = "#result.id"")
@RequestMapping(value = "/user", method = RequestMethod.POST)
public User createUser(@RequestBody User user);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...