[2022-05-24 09:27:33:173] [http-nio-8080-exec-5] ERROR - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 'et.excBrhCodes!=null'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: com.test.Config.excBrhCodes] with root cause
org.apache.ibatis.ognl.NoSuchPropertyException: com.test.Config.excBrhCodes
at org.apache.ibatis.ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:151)
at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2671)
at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:114)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
debug定位:
问题源码:
public static final Object getMethodValue(OgnlContext context, Object target, String propertyName, boolean checkAccessAndExistence) throws OgnlException, IllegalAccessException, NoSuchMethodException, IntrospectionException {
Object result = null;
Method m = getGetMethod(context, target == null ? null : target.getClass(), propertyName);
if (m == null) {
m = getReadMethod(target == null ? null : target.getClass(), propertyName, (Class[])null);
if (checkAccessAndExistence && (m == null || !context.getMemberAccess().isAccessible(context, target, m, propertyName))) {
result = NotFound;
if (result == null) {
if (m == null) {
throw new NoSuchMethodException(propertyName);
try {
result = invokeMethod(target, m, NoArguments);
} catch (InvocationTargetException var7) {
throw new OgnlException(propertyName, var7.getTargetException());
return result;
public Object getProperty(Map context, Object target, Object oname) throws OgnlException {
Object result = null;
String name = oname.toString();
result = this.getPossibleProperty(context, target, name);
if (result == OgnlRuntime.NotFound) {
throw new NoSuchPropertyException(target, name);
} else {
return result;
这个异常引起原因是方法访问权限为私有,或方法名字不规范导致例如isXxx字段,他的访问方法是getXXX还是getIsXxx这种歧义。
总结:经验还是太少了,只关注字段存不存在,没有注意方法的访问权限。
使用mybatis的时候访问报错,报异常如下:Cause: org.apache.ibatis.ognl.NoSuchPropertyException: java.util.ArrayList.length
Mybatis报错: org.apache.ibatis.exceptions.PersistenceException解决办法
一、问题描述
写好配置文件用JUnit进行测试,一运行就报错:
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.fendo.entity.Person with invalid ty
卡在这个问题困扰了一整天了,没有理解这个mybatis的运行机制,最后抽丝剥茧面向csdn编程一下,解决了此问题,特写博文分享。解决了.builder.BuilderException: Error parsing SQL这个问题。
在我使用MyBatis中使用Mapper接口的时候MyBatis出现以下错误:
"nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 'param.userId != null and param.userId !='' '. Cause: org.apache.ibatis.ognl.OgnlException: source is null for getProperty
> 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
第一种是入参里面名字对应不上
不管你是map还是对象名字对应不上都不行
比如你在mapper里面materialName像根据来查找,但实际你入参的对象或者map里面的对象没有这个属性就会报错,报没有这样的属性异常“NoSUchProPertyException”
第二种是属性命名不规范,比如is_XXX,这种mybatis解析时就会报错,尽量避免这种命名。
在使用myabtis进行查询时报:Caused by: org.apache.ibatis.ognl.NoSuchPropertyException: com.souche.workorders.model.query.AiLogQuery.filterStart。错误。
自己检查了下实体类的属性名称和sql中的参数名称,发现没错(这里得背锅,太粗心大意了)。 百度了一番,没有找到比较靠谱的答案,只能自己上手看源码了,一层一层断点下去,最终发现
还是参数名称没写对。sql中的
这个 noValue 一定存在,但是报错。 场景就是存在并发的情况下,尤其是在服务刚刚启动的时候,就会发生这个异常。
但是很不幸,mybatis 3.4.1 之前,用的 OGNL 都是由这个问题。
3.4.1 之前的版本的 OgnlRuntime,这里,第三个参数传 0,则永远都是 null。
public static final Object getMethodValue(OgnlContext context, Object target, String propertyNam
Action 向页面传输时,定义 Action 内部的 VO 类,无法传输
MyBatis 调用 Mapper 接口,传入List 集合,List = subList 的提示如下异常
Caused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression ‘orderIdList...
OgnlException这个Mybatis的错误其实就是包装了Java的NullPointException异常。所以显而易见,就是你的这个属性是空的。但是前几天我在用Mybatis时,出现了这个错误,却没有查出原因。于是我查找了csdn里面的一篇博客才发现其实问题很简单。博客地址:https://blog.csdn.net/qq_32331073/article/details/762...