Mybatis(3)异常:BuilderException: Error evaluating expression ‘bj.id!=null‘.

原因分析&解决方案

  • 原因:id是int类型的,int不能赋值null,将int替换为Integer就可以了
mybatis中的代码

在这里插入图片描述

实体类引用外键

在这里插入图片描述

外键的主表中,修改int–》Integer

在这里插入图片描述

`org.mybatis.spring.MyBatisSystemException` 嵌套 `org.apache.ibatis.builder.BuilderException`,且错误信息为 `Error evaluating expression &#39;ew.sqlSegment != null and ew.sqlSegment != &#39;&#39;&#39;`,通常表示 MyBatis 在解析 SQL 语句中的 OGNL 表达式时出现问题。以下是一些可能的解决方法: ### 1. 检查 `ew` 对象是否正确初始化 确保 `ew` 对象(通常是查询条件封装对象)在使用前已经正确初始化。如果 `ew` 为 `null`,那么在评估 `ew.sqlSegment` 时就会抛出异常。 ```java // 示例:正确初始化 QueryWrapper QueryWrapper<Entity> ew = new QueryWrapper<>(); ew.eq("column", "value"); ``` ### 2. 检查 MyBatis 和相关依赖版本兼容性 确保 MyBatisMyBatis-Spring 和其他相关依赖的版本兼容。版本不兼容可能会导致 OGNL 表达式解析错误。可以在 `pom.xml` 中指定合适的版本: ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.3.1</version> </dependency> ``` ### 3. 检查 OGNL 表达式语法 确认 OGNL 表达式 `ew.sqlSegment != null and ew.sqlSegment != &#39;&#39;` 语法正确。虽然这个表达式本身看起来没有问题,但可能在特定的 MyBatis 配置或环境中存在问题。可以尝试简化表达式进行测试: ```xml <if test="ew != null and ew.sqlSegment != null and ew.sqlSegment != &#39;&#39;"> <!-- SQL 语句 --> </if> ``` ### 4. 检查实体类和映射文件 确保实体类和映射文件中的属性和方法名与 OGNL 表达式中的一致。如果 `ew` 对象的属性名或方法名发生了变化,需要相应地更新 OGNL 表达式。 ### 5. 调试和日志记录 启用 MyBatis 的调试日志,查看详细的执行过程和错误信息。可以在 `application.properties` 中配置日志级别: ```properties logging.level.org.mybatis=DEBUG ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值