前言
mysql5.7之后支持了字段的json格式。这样更加方便了我们进行对象形式的数据存储,例如 在电商平台中,存储商品的属性可能会用到json格式,快递中储存货物信息也可能会用到json格式。
下面是在jpa中使用json格式的示例。
1,添加依赖
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-52</artifactId>
<version>2.4.3</version>
</dependency>
2,实体类
@Data
@Entity
@TypeDef(name = "json", typeClass = JsonStringType.class)
public class ExpressOrder{
/**主键自增 */
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**商品相关信息 */
@Type(type = "json")
@Column( columnDefinition = "json" )
private List<CargoModel> cargoModelList;
/**增值服务信息 */
@Type(type = "json")
@Column( columnDefinition = "json" )
private List<AddedServiceModel> addedServiceModelList;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CargoModel implements Serializable {
private String name;// 货物名称
private String count;// 货物数量
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AddedServiceModel implements Serializable {
private String name;//增值服务名,如COD等。
private String value;
private String value1;
}
这样存储到MySQL字段中的就是json形势了,并且在取出数据的时候也会自动转化为java对象。