在数据库中插入时缓存数据,并通过不同的getter方法从缓存中检索

时间:2018-04-10 09:11:22

标签: java spring spring-boot caching

我是初次启动的新手,我正在尝试在我的应用程序中实现缓存。我正在尝试在将新对象插入数据库时​​缓存响应,并且当我在调用不同的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;

}

0 个答案:

没有答案