使用mybatis的时候访问报错,报异常如下:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression ‘enterpriseIds!=null and enterpriseIds.length>0’. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: java.util.ArrayList.length
看异常信息貌似是说这个表达式
enterpriseIds!=null and enterpriseIds.length>0
有问题。
-
首先dao层当中的参数名称和xml当中的参数名称,发现是一样的没有什么问题
-
我传的值并没有null的情况,理论上就算传null有if判断也不应该报错
后来发现犯了一个特别傻的错误:
集合用size 数组用length
修改为如下即可解决:
<if test="enterpriseIds!=null and enterpriseIds.size>0">
关于mybatis报错:找不到某个属性的问题1、前言2、问题出现的场景3、解决办法
本人是在做公司一个“古董项目”的时候遇到的问题,其中造成该错误的大部分原因也是因为自己的操作失误,最后步步调试终于找出了问题的原因。做个记录有个印象,也给以后自己解决问题的思路提供一些借鉴。
2、问题出现的场景
很简单的操作,添加一条数据进行异步显示;前后端逻辑没有任何问题,因为这部分代码完成可以自动生成,也进行测试过。
但是后来我因为需求在数据库中加了一个字段——序号(order),后来用工具自动生成了代码,
问题描述:
org.apache.ibatis.ognl.NoSuchPropertyException: com.entity.UserEntity.createDate
问题分析:
1、UserEntity类没有createDate属性,导致报错。
解决办法:UserEntity类添加createDate属性。
这个 noValue 一定存在,但是报错。 场景就是存在并发的情况下,尤其是在服务刚刚启动的时候,就会发生这个异常。
但是很不幸,mybatis 3.4.1 之前,用的 OGNL 都是由这个问题。
3.4.1 之前的版本的 OgnlRuntime,这里,第三个参数传 0,则永远都是 null。
public static final Object getMethodValue(OgnlContext context, Object target, String propertyNam
第一种是入参里面名字对应不上
不管你是map还是对象名字对应不上都不行
比如你在mapper里面materialName像根据来查找,但实际你入参的对象或者map里面的对象没有这个属性就会报错,报没有这样的属性异常“NoSUchProPertyException”
第二种是属性命名不规范,比如is_XXX,这种mybatis解析时就会报错,尽量避免这种命名。
> 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.NoSuchPro
解决: 如果是只有一个集合作为参数,无影响。如果除了集合参数,还有其他类型的,则批量的集合参数必须放在第一个。例如:
void updateFromManage(@BatchParameter("companyBillingItem") List companyItems,
@Param("ns
2013-08-12 14:33:37.672:WARN::Nested in org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in URL [file:/E:/cloudwave-core/src/main/webapp/WEB- INF/classes/applicationContext.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse config resource: class path resource [mybatis- config.xml]; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.IllegalStateException: Cannot enable lazy loading because CGLIB is not available. Add CGLIB to your classpath.:java.lang.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super class