MyBatis-Plus自定义TypeHandler转换Json
原文链接:https://www.jianshu.com/p/57c01e1b3c63
0x0 背景
在项目开发中,我们有时会将一些属性作为json字符串保存到数据库,此时如何优雅的使用mybatis进行存储和查询就成为一个问题。
mybatis提供了TypeHandler接口可供用户进行自定义属性转换逻辑,本文基于mybatis-plus,写一个demo便于大家参考。
0x1 代码
首先是我们的主角:JsonTypeHandler,该类作为父类使用(因为不知道具体的反序列化类是什么)
public class UserTypeHandler extends JsonTypeHandler<User> {
public UserTypeHandler() {
super(User.class);
}
}
接下来在我们的实体类中,对应的字段上加注解:
@Data
@Accessors(chain = true)
//注意这里,要加autoResultMap = true
@TableName(value = "tb_department", autoResultMap = true)
public class DataSourceInfo {
@TableId(type = IdType.AUTO)
private Long id;
private String type;
//指定具体的处理器
@TableField(typeHandler = UserTypeHandler.class)
private User user;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}