我是初次启动的新手,我正在尝试在我的应用程序中实现缓存。我正在尝试在将新对象插入数据库时缓存响应,并且当我在调用不同的get方法时尝试访问缓存宾语。 我想要实现的是,当插入数据时,它被缓存,当我调用getattributesbyuserid或getattributesbyaddress等方法时,数据应该由缓存返回。我也尝试使用键但是无法弄清楚要使用哪些键。我已经在这几天了,真的需要你的帮助。谢谢你提前
@Transactional
public interface LocalRepositoryCustom {
//fetching
@Query("Select IdAttributes from Model IdAttributes where IdAttributes.userId= :userId")
@Cacheable(value="idatt")
List<Model > getIdAttributesForGivenuserID(@Param("userId") String userId);
@Query("Select IdAttributes from Model IdAttributes where IdAttributes.address= :address")
@Cacheable(value="idatt")
List<Model> IdAttributesForGivenAddress(@Param("address") String address);}
控制器:
List<Model> s=new ArrayList<Model>();@Autowired
private LocalRepository localservice;
@RequestMapping("/list/{userId}/{address}")
@ResponseBody
@CacheEvict(value="idatt",allEntries = true,beforeInvocation = true)
@CachePut(value="idatt")
public List<Model> add(@PathVariable String userId, @PathVariable String address) {
Model newuser = new Model();
newuser.setMoId(userId);
newuser.setLocalIdString(address);
localservice.save(newuser);
s.add(newuser);
return s;
}