求助:接口参数传入的是json对象数组,如何存储到postgresql数据库jsonb类型字段呢?
1、实体entity,字段类型如何定义呢?
private ListimgUrls;
2、mybatis文件xml属性文件如何定义?
原文引用:
https://blog.csdn.net/qq_31183727/article/details/108273293
1、数据库链接 URL配置
先在 postgreSql 的数据库 URL 后面加上 &stringtype=unspecified
postgreSql:
name: public
url: jdbc:postgresql://127.0.0.1:5432/test_db?&allowMultiQueries=true&autoReconnect=true&stringtype=unspecified
2、实体类配置
@TableName
加上 autoResultMap = true
例如:
@TableName(value = "form_detail", autoResultMap = true)
@TableField
加上 typeHandler = JacksonTypeHandler.class,这里我用的是Jackson的
fastjson 可以使用 FastjsonTypeHandler.class
Gson 可以使用 GsonTypeHandler.class
例如:
@TableField(value = "form_json", typeHandler = JacksonTypeHandler.class)
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
@TableName(value = "form_detail", autoResultMap = true)
public class FormDetail extends Model
private static final long serialVersionUID = 1L;
/**
* 表单key
*/
@TableId(value = "form_key", type = IdType.ASSIGN_UUID)
@ApiModelProperty(value = "表单key,主键")
private String formKey;
/**
* 表单内容json串
*/
@TableField(value = "form_json", typeHandler = JacksonTypeHandler.class)
@ApiModelProperty(value = "表单内容json串")
private Object formJson;
/**
* 修改时间
*/
@TableField("update_time")
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")
private Date updateTime;
@Override
protected Serializable pkVal() {
return this.formKey;
}
}
3、XML配置
如果使用 resultMap ,则也需要添加 typeHandler
扫一扫访问 Blade技术社区 移动端