Spring кэширует все элементы в списке отдельно

Я пытаюсь добавить кеширование в приложение CRUD, я начал делать что-то вроде этого:

@Cacheable("users")
List<User> list() {
    return userRepository.findAll()
}
@CachePut(value = "users", key = "#user.id") 
void create(User user) {
    userRepository.create(user)
}
@CachePut(value = "users", key = "#user.id") 
void update(User user) {
    userRepository.update(user)
}
@CacheEvict(value = "users", key = "#user.id") 
void delete(User user) {
    userRepository.delete(user)
}

У меня проблема в том, что я хочу, чтобы операции создания /обновления /удаления могли обновлять элементы, уже сохраненные в кэше, для list()

Я бы хотел кешировать все элементы, возвращаемые list(), чтобы все остальные операции могли обновлять кеш с помощью #user.id. Или, возможно, выполните все операции, чтобы обновить список, уже сохраненный в кэше.

Я прочитал, что могу удалить весь кеш при его обновлении, но я хочу избежать чего-то вроде:

@CacheEvict(value = "users", allEntries=true) 
void create(User user) {
    userRepository.create(user)
}

Есть ли способ создать /обновить /удалить значения в кэшированной коллекции? Или кэшировать все значения из коллекции как отдельные ключи?

4 голоса | спросил Federico Piazza 9 J000000Monday18 2018, 05:48:57

1 ответ


0
Еще раз, это не первый раз, когда этот вопрос был задан.Как кэшировать список записей на основе его первичного ключа с помощью весеннего кэшированияSpring Cache с коллекцией предметов /сущностейПомещение всех возвращаемых элементов в кэш Spring-Boot с использованием аннотацийКакие существуют стратегии использования Spring Cache для методов, которые принимают параметр массива или коллекции?И еще раз, ответ тот же.Я подозреваю, что любая 1 из ссылок поможет, но, возможно, начать с # 3.Ура, Джон
ответил John Blum 9 J000000Monday18 2018, 23:02:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132