java
2021-09-17
2021-09-17
人的一切痛苦,本质上都是对自己的无能的愤怒。——王小波
我们clone
下来mybatis-plus
官方示例项目:
1 |
|
首先看文档:
- JSON 字段类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@Data
@Accessors(chain = true)
@TableName(autoResultMap = true)
public class User {
private Long id;
...
/**
* 注意!! 必须开启映射注解
*
* @TableName(autoResultMap = true)
*
* 以下两种类型处理器,二选一 也可以同时存在
*
* 注意!!选择对应的 JSON 处理器也必须存在对应 JSON 解析依赖包
*/
@TableField(typeHandler = JacksonTypeHandler.class)
// @TableField(typeHandler = FastjsonTypeHandler.class)
private OtherInfo otherInfo;
}该注解对应了 XML 中写法为
1
<result column="other_info" jdbcType="VARCHAR" property="otherInfo" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" />
文档表明,首先要加@TableName(autoResultMap = true)
注解,然后再指定typeHandler
打开示例项目,可以看到确实如此
并且我们数据库表里的数据wallets
字段为json
我们运行测试类测试一下:
得到的结果也是完美映射
可以看到我们这里也能自定义转换器
他这里是jackson
的,如果我们要使用fastjson
的,则可以继承fastjsonTypeHandler
1 |
|
测试了下,成功转换