首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mybatis错误org.apache.ibatis.ognl.OgnlRuntime

mybatis错误org.apache.ibatis.ognl.OgnlRuntime
EN

Stack Overflow用户
提问于 2016-05-01 09:08:08
回答 1查看 1.7K关注 0票数 1

我使用jdk 1.7.0_76-b13,mybatis 3.2.8,我有如下代码:

代码语言:javascript
复制
List<Long> ids = 

ids = ids.subList();

someDAO.getByIds(ids);

在我的mapper.xml中,我有测试代码:

代码语言:javascript
复制
<when test="ids != null and ids.size() > 0">

我得到了一些错误:

代码语言:javascript
复制
Class org.apache.ibatis.ognl.OgnlRuntime can not access a member of class java.util.ArrayList$SubList with modifiers "public"]
    at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:47) ~[mybatis-3.2.8.jar:3.2.8]
    at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32) ~[mybatis-3.2.8.jar:3.2.8]
    at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:33) ~[mybatis-3.2.8.jar:3.2.8]
    at org.apache.ibatis.scripting.xmltags.ChooseSqlNode.apply(ChooseSqlNode.java:34) ~[mybatis-3.2.8.jar:3.2.8]
    at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32) ~[mybatis-3.2.8.jar:3.2.8]
    at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:40) ~[mybatis-3.2.8.jar:3.2.8]
    at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:278) ~[mybatis-3.2.8.jar:3.2.8]
    at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:118) ~[mybatis-3.2.8.jar:3.2.8]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:108) ~[mybatis-3.2.8.jar:3.2.8]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:102) ~[mybatis-3.2.8.jar:3.2.8]
    at sun.reflect.GeneratedMethodAccessor182.invoke(Unknown Source) ~[na:na]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_76]
    at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_76]
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:358) ~[mybatis-spring-1.2.2.jar:1.2.2]

有人能告诉我为什么吗?

EN

回答 1

Stack Overflow用户

发布于 2016-08-25 09:53:34

使用早于2.7的OGNL会导致Mybatis 3.2.x出现此问题。要么使用3.3.x版本的Mybatis,要么不使用集合的anonymous_inner_classes,以避免此错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36961953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档