报错误:
java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.lang.Class java.lang.invoke.SerializedLambda.capturingClass accessible: module java.base does not “opens java.lang.invoke” to unnamed module。
再跑查询功能时,报以上错误。
@Service
public class ArticleServiceImpl extends ServiceImpl<ArticleMapper, Article> implements ArticleService {
@Override
//MybatisPlus分页查询热门文章
public ResponseResult hotArticleList() {
//查询热门文章,封装ResponseResult返回。把所有查询条件写在queryWrapper
LambdaQueryWrapper<Article> queryWrapper = new LambdaQueryWrapper<>();
//热门文章肯定是已发布状态 status只能是1 .eq() 方法表示等于,.ge() 方法表示大于等于
queryWrapper.eq(Article::getStatus,1);
//按照流量进行排序,在数据表中ViewCount字段
queryWrapper.orderByDesc(Article::getViewCount);
//最多只能查询10条信息,当前显示第一页的数据,每一页显示10条数据
Page<Article> page = new Page<>(1,10);
page(page,queryWrapper);
//获取最终的查询结果
List<Article> articles = page.getRecords();
return ResponseResult.okResult(articles);
}
}
这里是因为mybatisPlus的版本号与jdk版本号不一致导致。
我的JDK是17,这里不能使用<version>3.4.3</version>
改成下面代码即可
<!--mybatisPlus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3</version>
</dependency>
修改后记得maven更新一次。更新后查询成功!
==> Preparing: SELECT id,title,content,summary,category_id,thumbnail,is_top,status,view_count,is_comment,create_by,create_time,update_by,update_time,del_flag FROM sg_article WHERE del_flag=0 AND (status = ?) ORDER BY view_count DESC
==> Parameters: 1(Integer)
<== Total: 0
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6abdc62b]