mysql中数据类型json,要求版本5.7及以上
所需依赖
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-52</artifactId>
<version>2.10.4</version>
</dependency>
实体类
@Column(columnDefinition = "json comment '源数据'")
@TableField(typeHandler = ExtendDataTypeHandler.class)
@Type(type = "json")
private Map<String, Object> sourceData;
注意:
Hibernate ORM 中没有json 类型。您可以使用 Hibernate Types project它提供对 JSON 的支持。
要添加对 json 的支持,需要将以下 @TypeDef 注释添加到您的实体:
@TypeDef(name = "json", typeClass = JsonStringType.class)
对应的JSON序列化处理器
@MappedTypes({Map.class})
@MappedJdbcTypes(JdbcType.VARCHAR)
public class ExtendDataTypeHandler extends FastjsonTypeHandler {
private final Class<Map<String, Object>> type;
public ExtendDataTypeHandler(Class<Map<String, Object>> type) {
super(type);
this.type = type;
}
@Override
protected Map<String, Object> parse(String json) {
return JSON.parseObject(json, type);
}
}
我这里是使用的Map<String,Object>去映射,当然你也可以用字符串,JSONObject或者业务实体类去映射