当前使用版本(必填,否则不予处理)
3.3.0
该问题是如何引起的?(确定最新版也有问题再提!!!)
`
MappedStatement statement = (MappedStatement) invocation.getArgs()[0];
String methodName = invocation.getMethod().getName();
Object parameter = invocation.getArgs()[1];
Object returnValue = null;
if (parameter == null) {
returnValue = invocation.proceed();
} else {
statement.getBoundSql(parameter);
Class<?> clazz = parameter.getClass();
for (; clazz != Object.class; clazz = clazz.getSuperclass()) {
try {
Field[] fields = clazz.getDeclaredFields();
for (Field f : fields) {
//获取字段中包含SensitiveInfo的注解
SensitiveInfo meta = f.getAnnotation(SensitiveInfo.class);
if (meta != null) {
log.info("类名{} 加密字段 {}", clazz.getSimpleName(), f.getName());
`
重现步骤(如果有就写完整)
使用mybatis拦截器获取updateById的对象, ParamNameResolver的getNamedParams调用时将实体参数转成了org.apache.ibatis.binding.MapperMethod.ParamMap, 无法反射获取到参数。
报错信息
sql可执行,只是无法反射获取到参数
Comment From: miemieYaho
用 et. 来获取,参考乐观锁插件