Mybatis:caused by: org.apache.ibatis.builder.BuilderException : Error evaluating expression ‘‘ 2021-10-10 19:30:38

1、报错信息

caused by: org.apache.ibatis.builder.BuilderException : Error evaluating expression ''
xxxxxxxxx
xxxxxxxxx

2、我遇到的报错场景

传入:type==null

      @Param("s") 实体类 
     <if test="s.type !=null">
	      and type=#{s.type}

3、解决方法

在外面增加一层判断—

        <if test="s !=null ">
			<if test="s.type !=null">
				and type=#{s.type}

或者这样写

		<if test="s !=null and s.type !=null">
			and type=#{s.type}
                                    Mybatis报错: org.apache.ibatis.exceptions.PersistenceException解决办法
一、问题描述
写好配置文件用JUnit进行测试,一运行就报错:
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.fendo.entity.Person with invalid ty
Caused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression 'ew.sqlSegment != null '. Cause: org.apache.ibatis.ognl.OgnlException: sqlSegment [com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: not support this colu
                                    Caused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression ‘dept.name != null and dept.name != ‘’’. Cause: org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, “name”)
注意了,与书写格式无关,是因为有些时候传入对象dept本来就是空值,导致空指针
                                    Mybatis-plus 报错记录:
Caused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression 'ew.customSqlSegment'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: com.baomidou.mybatisplus.core.conditions.query.QueryWrapper.customSqlSegmen
                                    (看文章之前要排除,自身的代码bug,本文是在本身代码没问题的基础上,依赖包版本过低导致的)
先上错误和描述,使用的mybatisplus插件,开始用的是3.1.1版本,然后本地运行项目没有问题,之前将项目打包成war包,也没问题,可以在服务器上正常运行。
但是要求,将项目打包成jar包,本地没有问题,使用项目分离的形式进行打包,并且在服务器上运行的时候,在使用到lambda表达式的代码报错,如下:
org.mybatis.spring.MyBatisSystemException: nested exc
在基于微服务架构风格的项目开发过程中,为了提高快速开发的目的,提高开发效率,集成了 MyBatisPlus,对于 MyBatisPlus 封装的 CRUD API 接口已经非常强大了,但是有时还是需要使用其动态 SQL 的拼接,在编写动态 SQL 时遇到一个梗,异常信息:“ 异常信息:nested exception is org.apache.ibatis.builder.Bui...
                                    我电脑上能运行的项目,在同事电脑上运行会这个错误。jdk版本与mybaties版本问题使用方法2更换jdk版本,因为3.4.2版本中count返回的是integer类型,而不是long,降低mbplus版本要修改这部分代码
                                    ew.sqlSegment != null and ew.sqlSegment != '' and ew.nonEmptyOfNormal'. Cause: org.apache.ibatis.ognl.OgnlException: sqlSegment [java.lang.ExceptionInInitializerError
mapper:
List<DetailVO> findList(Page<DetailVO> page, @Param("q") Map<String, Object> params);
通过myBatis自带功能foreach,直接把逗号分隔的字符串传到mapper.xml即可,后台不用过多操作,Mapper.xml拼接部分sql如下:
<if test="q.buType != nu
                                    最近项目中使用了mybatis-plus 3.1.1版本,发现使用lambda表达式方式的条件构造器,执行时会报错;但是我用单元测试却通过,真是一个大坑啊。经过在网上一顿猛查,发现压根就是没有找到类似的问题,所以今天就记录一下这个大坑。
测试代码:
	@Override
    public User getByUsername(String username) {
        return ...
Caused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression ‘ew.sqlSegment != null and ew.sqlSegment != ‘’ and ew.nonEmptyOfWhere’. Cause: org.apache.ibatis.ognl.OgnlExcept...