调用updatePerson方法后,当我调用getpersons方法记录未更新时,缺少什么...
// getting all person in this way
@Cacheable(cacheNames="person")
public List<person> getpersons(){
System.out.println("In getpersons Component..");
try{
persons = personRepo.findAll();
}catch(Exception e){
e.printStackTrace();
}
return persons;
}
//want to update single record in this way, db is updating successfully but //not cache
@CachePut(key="#personNum")
public Person updatePerson(Person person,String personNum){
System.out.println("In updatePerson Component..");
Person person1= personRepo.save(person);
System.out.println(person1);
return person1;
}
请帮助解决此问题,必须按预期更新缓存。
答案 0 :(得分:0)
您正在使用名为personNum的键更新记录,而在get方法中,您使用的是空键,即基于键的get。这就是为什么您看不到更新的原因。 Spring不允许您通过@Cacheable批注读取整个缓存。您需要直接访问缓存,也可以通过spring-hazelcast-data模块访问缓存。