当前使用版本(必须填写清楚,否则不予处理)

3.2

该问题是怎么引起的?(最新版上已修复的会直接close掉)

Xml使用Map传递参数,会报以下异常,这是2.x与3.x不兼容吗

重现步骤

报错信息

Caused by: org.apache.ibatis.binding.BindingException: Parameter 'id' not found. Available parameters are [page, pm, param1, param2] at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:212) ~[mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.reflection.wrapper.MapWrapper.get(MapWrapper.java:45) ~[mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:122) ~[mybatis-3.5.2.jar:3.5.2] at com.baomidou.mybatisplus.core.executor.AbstractBaseExecutor.createCacheKey(AbstractBaseExecutor.java:88) ~[mybatis-plus-core-3.2.0.jar:3.2.0] at org.apache.ibatis.executor.CachingExecutor.createCacheKey(CachingExecutor.java:146) ~[mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:82) ~[mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) ~[mybatis-3.5.2.jar:3.5.2] at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) ~[mybatis-3.5.2.jar:3.5.2] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171] at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426) ~[mybatis-spring-2.0.2.jar:2.0.2] ... 93 common frames omitted

Comment From: yuxiaobin

2.x分页 page是RowBounds的子类,可以不要写@Param, 现在IPage 是需要@Param, 所以原先map现在需要@Param("map") Map 以前可以直接 #{id} 现在需要 #{map.id}

Comment From: hipos123

2.x分页 page是RowBounds的子类,可以不要写@param, 现在IPage 是需要@param, 所以原先map现在需要@param("map") Map 以前可以直接 #{id} 现在需要 #{map.id}

这个在最新版本中需要改掉吗?,能不能就像2.X那样子取数据