使用SpringCache失效问题

使用SpringCache失效问题

代码关系:

情景描述:

我需要调用在当前的queryPage中调用GetIndexPlayList获取IPage对象,再将该对象封装成为一个PageUtils对象,可以看到,我是用了@Cacheable注解。

运行结果:

这是调用接口执行之后的结果,可以看到@Cacheable注解并没又产生作用,查看Redis中也没有我们想要的数据。

解决方式:

通过查阅博客等,发现如果是在本类中调用存在@Cacheable注解的方法(同类方法互调),该注解就会失效,当在本类中调用其他类中存在@Cacheable注解的方法的时候该注解才会生效。

针对我上面的代码,我就可以将这两个方法中的代码合二为一:

@Cacheable(value = "indexPlayList",key = "'indexPlayList'")
    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        IPage<PlaylistEntity> page = this.page(
                new Query<PlaylistEntity>().getPage(params),
                new QueryWrapper<PlaylistEntity>()
        );

        //将PlayList对象转化为PlayListVo对象
        page.convert(item-> new PlayListVo(item.getId(),item.getName(),item.getDescription(),item.getCover()));

        return new PageUtils(page);
    }

我为什么不一开始就将这代码写成这样:

🤣🤣🤣🤣🤣因为我一开始这样写的时候是总会出现下面图片中的错误,我看了看错误是缺少了构造方法,所以我添加了一个全参数构造,结果还是不行,最后就想着将两个方法拆分,就出现这个问题了😂😂😂,最后我也解决了这个问题,只需要添加一个无参数构造就行了。。。

posted @ 2023-06-15 23:58  just1t  阅读(128)  评论(0编辑  收藏  举报