2017-01-20 3 views
0

@Cacheable@CachePut 주석을 사용하는 내장 캐시가있는 Spring을 사용하고 있습니다.Spring @CachePut 두 개의 키를 사용하여 동일한 값을 입력하십시오

내 @ Service에는 데이터베이스에 값을 저장하는 방법과 데이터베이스에서 값을 가져 오는 두 가지 방법이 있습니다. 둘 다 캐시를 ​​사용합니다.

@CachePut(key = "#code") 
MyObject saveMyObject(MyObject o, String code) { 
    return dao.save(o); 
} 

@Cacheable(key = "#code") 
MyObject getMyObject(String code) { 
    return dao.getMyObject(code); 
} 

개체를 저장하는 동안 다른 캐시에 넣고 싶습니다.

@CachePut(key = "'TMP_'.concat(#code)") 

하지만 난 saveMyObject 방법에 두 @CachePut 주석을 사용할 수 없습니다.

어떻게해야합니까?

답변

2

그룹화하여 CachePut에 org.springframework.cache.annotation.Caching 주석을 사용할 수 있습니다

@Caching(put = { 
     @CachePut(key = "#code"), 
     @CachePut(key = "'TMP_'.concat(#code)") 
}) 
MyObject saveMyObject(MyObject o, String code) { 
    return dao.save(o); 
} 
+0

멋진, 캐싱 주석에 대해 알고하지 않았다! – user3626048