Spring boot @Caching с несколькими ключами - PullRequest
0 голосов
/ 14 февраля 2020
public class Student {
    public int studentName;
    public String Addr1;
    public String Addr2;
    public String Addr2;
    //getter setter
}

I have one repository class which contains following methods
class StudentRepoImpl{
   @Cacheable(value = "Students")
   public List<Students> findAllStudents() {
     //fetching all cust and putting in the Students cache
   }

   @Cacheable(value = "Students")
   public List<Students> findStudentsBystudentNameAndAddresses() {
     //fetching all cust data by **Name/Address1/Address2/Address3** basis of field available studentName/Address1/Address2/Address3 and putting in Student table
   }

}

Текущий вывод:

  1. Извлечение всех данных из БД и добавление в кэш студентов в метод findAllStudents ()
  2. Но при поиске данных на основе некоторых критериев (имя / адрес1 / адрес2 / адрес3) с использованием метода findStudentsBystudentNameAndAddresses () он извлекает данные из БД вместо кэша.

Примечание : Не добавляется ключ при кэшировании, потому что в критериях поиска есть 4 поля (Имя / Адрес1 / Адрес2 / Адрес3), и эти условные поля означают, что какое-то время только Адрес1 будет в критериях поиска или иногда Адрес1 + Адрес2 или иногда все Адрес1 + Адрес2 + Поля Address3, и я хочу получить точное совпадение на основе имени и доступных адресов.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

Попробуйте добавить конфигурацию, подобную этой

@Configuration
public class CachingConfig {
    @Bean(name = "springCM")
    public CacheManager cacheManager() {
        return new ConcurrentMapCacheManager("Students");
    }
}

Надеюсь, полезна

0 голосов
/ 20 февраля 2020

Вы добавили аннотацию @EnableCaching в свой класс конфигурации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...