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

mybatis-plus-core - 3.4.0

该问题是如何引起的?(确定最新版也有问题再提!!!)

扩展级联保存(sql注入),无法获取对象类型的字段

重现步骤(如果有就写完整)

我在扩展sql注入的时候,(save()级联属性保存) 发现TableInfoHelper.getAllFields 没有查出来对象类型的属性,我该如何扩展这个方法。

报错信息

Comment From: miemieYaho

propertyType

Comment From: liu098

what?

Comment From: liu098

/**
 * <p>
 * 获取该类的所有属性列表
 * </p>
 *
 * @param clazz 反射类
 * @return 属性集合
 */
public static List<Field> getAllFields(Class<?> clazz) {
    List<Field> fieldList = ReflectionKit.getFieldList(ClassUtils.getUserClass(clazz));
    return fieldList.stream()
        .filter(field -> {
            /* 过滤注解非表字段属性 */
            TableField tableField = field.getAnnotation(TableField.class);
            return (tableField == null || tableField.exist());
        }).collect(toList()); 
}     我不想让她过滤这个

Comment From: miemieYaho

TableInfoHelper.getTableInfo

Comment From: miemieYaho

过滤哪个? tableField.exist()?

Comment From: liu098

没事了,谢谢 我自己搞混淆了, 我在实体字段后加了个exist=true

Comment From: liu098

你好,如果我用@tablefiled(exist=false) , 我要如何扩展下面这个方法(下面这个就是只取数据库字段的属性) public static List getAllFields(Class<?> clazz) { List fieldList = ReflectionKit.getFieldList(ClassUtils.getUserClass(clazz)); return fieldList.stream() .filter(field -> { / 过滤注解非表字段属性 / TableField tableField = field.getAnnotation(TableField.class); return (tableField == null || tableField.exist()); }).collect(toList()); }

Comment From: liu098

我难道我必须得自己写一个TableInfoHelper类吗

Comment From: miemieYaho

不能扩展