Closed ityangkai-coder closed 9 months ago
3.5.5
关于TypeHandler的泛型擦除问题,例如我们想使用List作为属性值,使用统一的TypeHandler处理此种场景,无论T为什么对象,都可以完成使用同一个Handler,不用为此写多种Handler进行处理,是不是更方便。如果是担心对整体带来影响,是否可以给开发者留一个扩展口,让用户自定义Handler的register,这样用户可以自己实现泛型的扩展(甚至更特殊的操作),等Mybatis解决泛型后(mybatis三年前就开始说修了,还没修复,求扩展口ing),我们切换至后续的版本,而不用一直等待Mybatis的问题解决 问题1:TableFieldInfo中的field字段存储了泛型真实字段为什么不用,或者不传递至Handler中,供用户自行选择使用呢?反而仅仅用propertyType反射出TypeHandler实例?
问题2:是否已经有类似的实现方式已经存在?这里我并未查询到。 问题3:如果将Field传递至Handler中是否会存在隐藏Bug出现?导致团队未想到这种方式? 例如类似的实现方式: 问题4:mybatis其他团队,如Mybatis-Flex实现了此方案,为何MybatisPlus团队不选择实现呢,我看之前的Issues也提到过类似的问题。 下面是Mybatis-Flex团队的开源代码:
重现步骤:
无
可以使用自定义 typehandler ,使用 TypeRefrence 实现
虚心请教!!能不能给个demo
参考 1 参考 2
当前使用版本(必填,否则不予处理)
3.5.5
该问题是如何引起的?(确定最新版也有问题再提!!!)
关于TypeHandler的泛型擦除问题,例如我们想使用List作为属性值,使用统一的TypeHandler处理此种场景,无论T为什么对象,都可以完成使用同一个Handler,不用为此写多种Handler进行处理,是不是更方便。如果是担心对整体带来影响,是否可以给开发者留一个扩展口,让用户自定义Handler的register,这样用户可以自己实现泛型的扩展(甚至更特殊的操作),等Mybatis解决泛型后(mybatis三年前就开始说修了,还没修复,求扩展口ing),我们切换至后续的版本,而不用一直等待Mybatis的问题解决
问题1:TableFieldInfo中的field字段存储了泛型真实字段为什么不用,或者不传递至Handler中,供用户自行选择使用呢?反而仅仅用propertyType反射出TypeHandler实例?
问题2:是否已经有类似的实现方式已经存在?这里我并未查询到。 问题3:如果将Field传递至Handler中是否会存在隐藏Bug出现?导致团队未想到这种方式? 例如类似的实现方式: 问题4:mybatis其他团队,如Mybatis-Flex实现了此方案,为何MybatisPlus团队不选择实现呢,我看之前的Issues也提到过类似的问题。 下面是Mybatis-Flex团队的开源代码:
重现步骤(如果有就写完整)
重现步骤:
报错信息
无