春季启动中的cacheput注释不更新缓存hazelcast缓存

时间:2019-01-16 06:17:10

标签: hazelcast

调用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;
}

请帮助解决此问题,必须按预期更新缓存。

1 个答案:

答案 0 :(得分:0)

您正在使用名为personNum的键更新记录,而在get方法中,您使用的是空键,即基于键的get。这就是为什么您看不到更新的原因。 Spring不允许您通过@Cacheable批注读取整个缓存。您需要直接访问缓存,也可以通过spring-hazelcast-data模块访问缓存。