Mybatis Plus 自定义sql + QueryWrapper

我的代码:

@Select("SELECT * FROM book_info LEFT JOIN book_type ON book_info.book_type=book_type.id ${ew.customSqlSegment}")
IPage<BookInfoVo> queryAll(Page<BookInfoVo> page, @Param("ew") QueryWrapper<BookInfo> queryWrapper);

报错信息如下:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression ‘ew.customSqlSegment’. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: com.baomidou.mybatisplus.core.conditions.query.QueryWrapper.customSqlSegment

原因:Mybatis Plus 3.0.7 版本才开始用【自定义sql】+【QueryWrapper】。

换成3.0.7版本之后来了个新错:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Error instantiating interface com.baomidou.mybatisplus.core.metadata.IPage with invalid types () or values (). Cause: java.lang.NoSuchMethodException: com.baomidou.mybatisplus.core.metadata.IPage.()

原因:多次测试发现可以返回List不能返回IPage,不然就会报错。最后将Mybatis Plus 版本设置成3.2.0,完美解决。

Mybatis-Plus 3.2.0:

移除 PerformanceInterceptor 相关(SQL执行效率插件), 建议使用 p6spy(p6spy是一个开源项目,通常使用它来跟踪数据库操作,查看程序运行过程中执行的sql语句。)

参考:

补充一个错误

Resolved [org.mybatis.spring.MyBatisSystemException: nested exception
is org.apache.ibatis.exceptions.TooManyResultsException: Expected one
result (or null) to be returned by selectOne(), but found: 6]

mybatis-plus 中page参数不在第一个位置,返回的结果集接收对象不被认为是一个集合,而放在第一位就没有问题。
https://blog.csdn.net/weixin_43611145/article/details/106501748

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值