添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

前几天在写测试文件的时候,发现出现了下面的错误:

org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: org.apache.ibatis.builder.BuilderException: Error evaluating expression ‘et.isPrivate != null’. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: im.my.project.mysql.Task.isPrivate
### Cause: org.apache.ibatis.builder.BuilderException: Error evaluating expression ‘et.isPrivate != null’. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: im.my.project.mysql.Task.isPrivate

本来以为数据库里的信息出错了,或者可能是读取数据出错,结果反复检查了好几遍数据库,才确保不是数据库的问题。后来,gg 了一下,看到下面的答案,感觉非常好(记得科学上网哈)

https://gitee.com/baomidou/mybatis-plus/issues/IINUI

它里面说:

数据库表中表达是与否概念的字段,使用的是 is_xxx 的方式命名。实体类中对应的字段是isXxx。

isXxx 属性 属于不规范的写法,这样会误认为 isXxx 属性 xx 的 boolean 类型,请更正命名 或者get 方法为 getIsXxx

啥意思呢,就是说,属性不要设为isXxx,否则会出错。

这里我并不想更改属性变量名称,所以用了另一种方法解决的。

我发现,在自动生成 get set 方法的时候,为 isXxx 属性(这里是 isPrivate)生成的方法名是 getPrivate() setPrivate() ,这就不太对了,改回 getIsPrivate() setIsPrivate() 后(所有其它类的调用也需要随着更改),就解决问题了。

第一种是入参里面名字对应不上 不管你是map还是对象名字对应不上都不行 比如你在mapper里面materialName像根据来查找,但实际你入参的对象或者map里面的对象没有这个属性就会报错,报没有这样的属性异常“NoSUch ProPerty Exception ” 第二种是属性命名不规范,比如is_XXX,这种mybatis解析时就会报错,尽量避免这种命名。 使用mybatis的时候访问报错,报异常如下:Cause: org . apache . ibatis . ognl .NoSuch Property Exception : java.util.ArrayList.length 解决 : 如果是只有一个集合作为参数,无影响。如果除了集合参数,还有其他类型的,则批量的集合参数必须放在第一个。例如: void updateFromManage(@BatchParameter("companyBillingItem") List companyItems, @Param("ns 这个 noValue 一定存在,但是报错。 场景就是存在并发的情况下,尤其是在服务刚刚启动的时候,就会发生这个异常。 但是很不幸,mybatis 3.4.1 之前,用的 OGNL 都是由这个问题。 3.4.1 之前的版本的 Ognl Runtime,这里,第三个参数传 0,则永远都是 null。 public static final Object getMethodValue( Ognl Context context, Object target, String property Nam org . apache . ibatis . ognl .NoSuch Property Exception :java.lang.Float.length 错误原因:sql语句中动态标签 <if test="price!=null and price.length>0">price=#{price},</if> 解决 :删除 sql语句关于Float类型的length判断=> and price.length>0 Caused by: org . apache . ibatis .buil 在使用myabtis进行查询时报:Caused by: org . apache . ibatis . ognl .NoSuch Property Exception : com.souche.workorders.model.query.AiLogQuery.filterStart。错误。 自己检查了下实体类的属性名称和sql中的参数名称,发现没错(这里得背锅,太粗心大意了)。 百度了一番,没有找到比较靠谱的答案,只能自己上手看源码了,一层一层断点下去,最终发现 还是参数名称没写对。sql中的 新增简单的java. ibatis 的xml功能 新版文档参考:,建议通过单测和二进制学习 建议尽快从Dapper.Linq和Dapper.Common移植到 sqlBatis代码可维护性极好,实体映射规则可定制化,移植成本非常小。 免责说明:使用前先测试 电子邮件: QQ:1448376744 QQ群:642555086 // "LinqTypeMap" file in unit test proj