在外面增加一层判断—
<if test="s !=null ">
<if test="s.type !=null">
and type=
或者这样写
<if test="s !=null and s.type !=null">
and 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...