環(huán)境:spring boot項目 mybatis-plus作為持久層
-
實體類 TableName注解添加屬性值
autoResuleMap = true,字段加TableField注解,添加屬性值typeHandler = JacksonTypeHandler.class
FastjsonTypeHandler同樣可以實現(xiàn),二者的區(qū)別:
JacksonTypeHandler可以兼容 MybatisPlus 的功能和滿足 支持 MySQL JSON 解析- 支持 MVC JSON 解析
- 支持 MySQL JSON 解析
FastjsonTypeHandler
- 支持 MVC JSON 解析
- 不支持 MySQL JSON 解析
@Data
@Accessors(chain = true)
@TableName(value = "base_info",autoResultMap = true)
public class BaselineEcuInfo implements Serializable {
private static final long serialVersionUID = -83548930182013052L;
private Integer id;
private String name;
/**
* 這個字段數(shù)據(jù)庫存的是json字符串
*/
@TableField(typeHandler = JacksonTypeHandler.class)
private InfoDto value;
}
注意事項
- MVC JSON 解析時,可以不用加 @TableName(value = "t_test",
autoResultMap = true) 【高亮部分】,但是 MySQL JSON 解析查詢的時候,如果不加,查出來為 null - MySQL JSON 解析查詢時,只支持JSON格式:{"name":"Tomcat","age":10},不支持:{"name":"Tomcat","age":10} 和 "{"name":"Tomcat","age":10}"
- xml文件,resulltMap里面的字段,添加
typeHandler屬性
<result property="ext"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"
column="ext"/>
注:mybatis 會有所不同