Cause: org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, \“wname\“)\r\n\ta
完整的报错是这样的:
“error”: “Internal Server Error”,
“trace”: "org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression ‘checkin.adminVo.wname != null and checkin.adminVo.wname != ‘’’. Cause: org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, “wname”)\r\n\tat
我们使用mybatis编写动态sql的时候,可能会遇到这种场景,在实体类中包含了实体类:
/** @author 小爽帅到拖网速* @since 2021-11-17*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_checkin")
@ApiModel(value="Checkin对象", description="")
public class Checkin implements Serializable {@ApiModelProperty(value = "学生")@TableField(exist = false)private StudentVo studentVo;@ApiModelProperty(value = "员工")@TableField(exist = false)private AdminVo adminVo;}
在写动态sql 的时候,势必会运用到实体类中实体类的属性,我上面的报错是因为我在mapper.xml中的动态sql是这样写的
<if test="checkin.studentVo.gender != null and checkin.studentVo.gender != ''">and s.gender = #{checkin.studentVo.gender,jdbcType=VARCHAR}</if>
<if test="checkin.adminVo.wname != null and checkin.adminVo.wname != ''">and a.wname like concat('%', #{checkin.adminVo.wname,jdbcType=VARCHAR})
</if>
如果动态sql这么写了,参数studentVo为空的时候gender势必也为空,所以我们不能够去这么写
正确代码:
<if test="checkin.studentVo != null"><if test="checkin.studentVo.gender != null and checkin.studentVo.gender != ''">and s.gender = #{checkin.studentVo.gender,jdbcType=VARCHAR}</if>
</if>
<if test="checkin.adminVo != null"><if test="checkin.adminVo.wname != null and checkin.adminVo.wname != ''">and a.wname like concat('%', #{checkin.adminVo.wname,jdbcType=VARCHAR})</if>
</if>
多加一层判断实体类是否为空即可!
Cause: org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, \“wname\“)\r\n\ta相关推荐
- Caused by: org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, mil_id)
今天在使用mybatis处理数据库的时候,突然抛出了上述异常,让我感到很惊讶,因为在处理save的时候,在Mybatis的配置文件中,我根本就没有使用到ognl表达式,系统怎么会抛出上述异常.而且之前 ...
- 错误记录(11): source is null for getProperty(null, name)
使用SSM框架做项目时,使用到了XML中的判断条件查询方式,代码如下: <if test="machineInfo.name != null and machineInfo.name ...
- Mybatis org.apache.ibatis.ognl.NoSuchPropertyException:xxx问题解决
问题描述: org.apache.ibatis.ognl.NoSuchPropertyException: com.entity.UserEntity.createDate 问题分析: 1.UserE ...
- sql报错,org.apache.ibatis.ognl.ParseException: Encountered “ <IDENT> “AND ““
在一个风和日丽的下午,我照常写着代码,但是在一次自测接口时,发现了一个报错.提示如下: 当时有点懵. <select id="selectCompanySample"> ...
- mybatis org.apache.ibatis.ognl.ParseException: Encountered “ <IDENT> “AND ““ at line 1, column 14.
mybatis中if判断的and 要小写,大写报错的原因 <if test="(personName != null and personName!='') || (companyNa ...
- Caused by: org.apache.ibatis.ognl.TokenMgrError: Lexical error at line 1, column 43. Encountered: <
前言 报错 错误信息 [2020-12-15 13:56:33] -- [INFO ]: [com.xxxx.phb.exception.ExceptionHandlerAdvice]<
- Caused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression ‘dept.name
Caused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression 'dept.name != nul ...
- Caused by: org.apache.ibatis.reflection.ReflectionException我碰到的情况,原因不唯一
映射文件: <select id="selectKeyByUserId" resultMap="Xxx"> <![CDATA ...
- Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: There is no gette
这里写自定义目录标题 问题起因 错误码代码如下: step 1 问题起因 很简单的id和where mapper标签的使用不知道为什么突然出现无null1getter错误 错误码代码如下: org.a ...
最新文章
- 设计模式——控制反转依赖注入
- mysql搜索规则_MySQL基于规则优化
- 《网球王子》与阿梅尔
- mycat mysql 物理部署_一、MyCat的搭建
- 计算机操作系统稳定性的因素有哪些,计算机操作系统期末重点复习汇编.docx
- 三位数倒序数C语言,C语言求助!一个三位数的逆序数,总是编不对
- bootstrap4 后台管理模板_开源的后台管理模板
- php 改变页面元素,动态更改网页HTML元素(对象)内容_经验交流
- 单位计算机安全和保密措施,安全管理及保密措施
- 【ANSYS命令流】定义单元类型与实常数
- 中兴新支点国产操作系统下载安装WPS办公软件,好用无广告
- python爬贴吧回复_Python爬虫实践,获取百度贴吧内容
- C语言期末复习题(带答案)
- 网络协议之一(ICMP)
- 【Unity】监听编辑器聚焦/激活状态OnEditorFocus
- C++八股文分享---数据结构其二---哈希表
- vue页面中el-carousel轮播页面或图片
- 野火STM32学习(7)
- 卡西欧计算机的闹铃怎么取消,卡西欧如何关闭闹钟
- 刘雪峰卷积神经网络,刘雪峰老师哪里人
热门文章
- 常用计算机视觉库,各种常用计算机视觉库
- 从艺赛旗iS-RPM,看国产流程挖掘产品的发展与特性
- 接口测试系列之--前端交互测试和后端逻辑测试
- WIN10下DOCKER的安装与使用
- MultiSim电路仿真之受控源的使用
- 联通的无限流量套餐,比移动好很多
- SQL Server 2019企业版和标准版的区别?
- Android 动态改变SeekBar进度条颜色与滑块颜色
- 车载wince升级改造_想在低配车内蹦迪?改造车机还不如装个接收器,也就一顿饭钱...
- linux 下生成docx,linux下创建、删除文件和文件夹命令.docx