2016-05-01 5 views
0

i verwenden jdk 1.7.0_76-b13, Mybatis 3.2.8, und ich habe einige Code wie folgt:Mybatis Fehler org.apache.ibatis.ognl.OgnlRuntime

List<Long> ids = 

ids = ids.subList(); 

someDAO.getByIds(ids); 

und in meinem mapper.xml i Testcode:

<when test="ids != null and ids.size() > 0"> 

bekomme ich einige Fehler:

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] 

kann mir jemand sagen, warum?

+0

Wenn es möglich ist, debuggen Sie bitte Ihre Anwendung bei 'org.apache.ibatis.scripting.xmltags.OgnlCache.getValue (OgnlCache.java:47)' und überprüfen Sie, was jeder Wert der lokalen Variablen und veröffentlichen Sie es hier, das sollte sein sinnvoll. –

+0

posten Sie Ihre vollständige Abfrage und Stacktrace, so dass es einfach zu helfen ist. – Lucky

Antwort

0

Die Verwendung eines OGNL vor 2.7 verursacht dieses Problem mit Mybatis 3.2.x. Verwenden Sie entweder eine 3.3.x-Version von Mybatis oder verwenden Sie nicht die anonymous_inner_classes Collection, um diesen Fehler zu vermeiden.

+0

Es geschieht zufällig auf Währung –