添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
evaluating expression ‘ew.sqlSegment != null and ew.sqlSegment != ‘‘ and ew. mybaties plus问题 2022-06-20 11:23:58 ew . sql Segment != null and ew . sql Segment != '' and ew .nonEmptyOfNormal'. Cause: org.apache.ibatis.ognl.OgnlException: sql Segment [ java .lang.ExceptionInInitializerError 因为开发时,项目经理提到使用DTO建立与前台交互用实体,我着手了解一下,然后现学现用。 至于DTO是什么我这里就不多做赘述,因为我自己理解都不是很清楚,生怕误人子弟。 下面记录一下,我使用DTO都做了一些什么。 我理解的DTO 和 VO 其实没多大区别,所以我直接使用VO给我的DTO类做后缀名。 然后这些类里面就放一些前端需要的字段,像什么delfFlag、createUser、createTi... (看文章之前要排除,自身的代码bug,本文是在本身代码没 问题 的基础上,依赖包版本过低导致的) 先上错误和描述,使用的mybatisplus插件,开始用的是3.1.1版本,然后本地运行项目没有 问题 ,之前将项目打包成war包,也没 问题 ,可以在服务器上正常运行。 但是要求,将项目打包成jar包,本地没有 问题 ,使用项目分离的形式进行打包,并且在服务器上运行的时候,在使用到lambda表达式的代码报错,如下: org.mybatis.spring.MyBatisSystemException: nested exc Caused by: org.apache.ibatis.builder.BuilderException: Error eval ua ting expression ' ew . sql Segment != null '. Cause: org.apache.ibatis.ognl.OgnlException: sql Segment [com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: not support this colu @Test void selectLambda() { LambdaQueryWrapper<User> queryWrapper = n ew LambdaQueryWrapper<>(); queryWrapper.like(User :: getName, "W") Caused by: org.apache.ibatis.builder.BuilderException: Error eval ua ting expression ' ew . sql Segment != null and ew . sql Segment != '' and ew .nonEmptyOfNormal'. Cause: org.apache.ibatis.ognl.OgnlException: sql Segment [ java .lang. Null PointerException] 真得吐槽一下,mybatis就不能把这个错报成 column 'xxx' is not exist 吗。发现了Mybatis一个很不直观的错误,从字面上根本看不出哪里有 问题 。可以看到这是一个虚拟字段,并不存在于表中,用它来做条件肯定有 问题 。只能看出是空指针,于是我用断点跟踪我传的条件,发现全部都有值。于是把这个条件去掉之后,顺利解决 问题 。请看看我的查询条件怎么写的。 一文解决 SQL 查询中关于 NULL 的陷阱 NULL 值处理是应用开发人员最容易出错误的地方,主要的原因是大家习惯使用二元的布尔逻辑来思考判断,而数据库对于 NULL 值的处理逻辑是三值逻辑。事实上,数据库优化器中缺陷最多的其实也是和 NULL 值处理相关的逻辑。即使是有着几十年历史的DB2/Teradata等成熟的数据库软件,仍然有超过20%的缺陷和 NULL 处理相关。 本文深度解析 NULL 值陷阱出现的根本原因,总结了简单有效的判断逻辑;同时针对日常开发中四种常见陷阱,解释其适用条件及解决方案;最后介绍了Paw SQL A