2016-05-01 43 views
0

私はJDK 1.7.0_76-b13の使用は、3.2.8をMyBatisの、と私は次のようにいくつかのコードを持っている:MyBatisのエラーorg.apache.ibatis.ognl.OgnlRuntime

List<Long> ids = 

ids = ids.subList(); 

someDAO.getByIds(ids); 

を、私のmapper.xmlにIテストコードを持っている:

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

私はいくつかのエラーを取得:

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] 

誰が、なぜ私に言うことができますか?

+0

可能であれば、org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:47) 'でアプリケーションをデバッグし、各ローカル変数の値を確認してここに公開してください。有用。 –

+0

完全なクエリとスタックトレースを投稿すると、簡単に手助けできます。 – Lucky

答えて

0

2.7より前のOGNLを使用すると、Mybatis 3.2.xでこの問題が発生します。このバグを回避するには、3.3.xバージョンのMybatisを使用するか、Collectionのanonymous_inner_classesを使用しないでください。

+0

通貨で偶然起こる –