当前使用版本(必填,否则不予处理)
3.4.3.3
该问题是如何引起的?(确定最新版也有问题再提!!!)
(最新版中也有此问题) SQL Server中没有 json 类型,因此我们使用了 varchar 类型,但是代码里 pojo 的属性使用了一个特定的类来描述,为了平滑地进行此字段的存取,我们使用了你们提供的 @TableField 注解的 typeHandler 特性,使用了一个 FastjsonTypeHandler,但是我们发现 handler 本身不对 null 的param 进行任何的 json 转换,而是由其父类处理,导致我们不能存入一个在内存中为 null 但在数据库中为 'null'(字符串)的数据。现在的 Json 标准对于 'null' 也是可以进行正确转化的,我推荐在 handler 中添加对 null 的 param 的转化逻辑。 我可以提供 PullRequest
重现步骤(如果有就写完整)
在 SQL server 中添加一个表,表中使用 json 类型做一个字段;
Spring 项目中添加一个此表的映射类,在字段对应的属性上添加注解 “@TableField(insertStrategy = FieldStrategy.IGNORED, typeHandler = FastjsonTypeHandler.class)”;
添加一个对应类的 Mapper (extends BaseMapper
报错信息
无
PS
如果不推荐添加此逻辑,希望开发者们回复一下不推荐的理由。向你们虚心学习,谢谢!
Comment From: miemieYaho
那你自己重写一个typehandler用吧