前台想在查询数据的同时或之前获取查询数据的sql,于是想用getBoundSql来获取拼完参数的sql,但是传入参数类型为List的时候,总是报错,String和int类型可以正常返回。
这是代码
List<String> list = new ArrayList<>();
list.add("1234");
list.add("5678567");
list.add("12564534");
String sql = sqlSessionFactory.getConfiguration().getMappedStatement("com.mapper.ConfigDOMapper.getTest").getBoundSql(list).getSql();
System.out.println(sql);
报错信息
java.lang.UnsupportedOperationException: null
at org.apache.ibatis.reflection.wrapper.CollectionWrapper.get(CollectionWrapper.java:38)
at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:122)
at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextMap.get(DynamicContext.java:102)
at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:113)
at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)
at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)
at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)
at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)
at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)
at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)