官方解决方案
@Slf4j
@MappedTypes({ Object.class })
@MappedJdbcTypes(JdbcType.VARCHAR)
public class DbJsonTypeHandler extends AbstractJsonTypeHandler<Object> {
private final Class<?> clazz;
public DbJsonTypeHandler(Class<?> type, Class<?> innerType) {
if (log.isTraceEnabled()) {
log.trace("JacksonTypeHandler(" + type + ")");
}
Assert.notNull(type, "Type argument cannot be null");
this.clazz = innerType;
}
@Override
protected Object parse(String json) {
if (JSONUtil.isJsonArray(json)) {
return JSONUtil.toList(JSONUtil.parseArray(json), this.clazz);
} else {
return JSONUtil.toBean(json, this.clazz);
}
}
@Override
protected String toJson(Object obj) {
return JSONUtil.toJsonStr(obj);
}
}
public class JsonTypeHandlerFactory {
public static class ListTypeHandler extends DbJsonTypeHandler {
public ListTypeHandler(Class<?> type) {
super(type, 需要映射的实体.class);
}
}
}
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "t_appointment_time_config", autoResultMap = true)
public class ccgg extends BaseEntity<Long> {
/**
* 时间及间隔设置_json[{id:1,name:2}]
*/
@TableField(value = "ccgg",
typeHandler = JsonTypeHandlerFactory.ListTypeHandler.class)
private List<ccgg> ccgg;
}
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!