@Data
//@Embeddable // JSON类型时,需要删除
//public class Address2 implements Serializable { // 不需要实现 Serializable接口
public class Address2 {
// private static final long serialVersionUID = 211030L;
* 邮政编码
@Column(updatable = false)
private String zipCode2;
实体类添加:来自博客园
// User.java
// Address属性,无效,,会建立 Address下的 4个字段
@Type(type = "json")
@Column(columnDefinition = "json")
private Address jsonAddress;
// Address2 属性,有效,,会建立JSON类型字段 json_address2
@Type(type = "json")
@Column(columnDefinition = "json")
private Address2 jsonAddress2;
上面的部分注解不是来自javax.persistence包:
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import com.vladmihalcea.hibernate.type.json.JsonStringType;
启动项目,修改表的SQL日志语句:来自博客园
2021-10-30 10:58:15.409 INFO 19068 --- [ main] org.hibernate.dialect.Dialect :
HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect
Hibernate: alter table user add column city varchar(255)
Hibernate: alter table user add column district varchar(255)
Hibernate: alter table user add column province varchar(255)
Hibernate: alter table user add column zip_code varchar(255)
Hibernate: alter table user add column json_address2 json
数据表中效果:来自博客园
mysql> desc user;
+------------------+--------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+-------------------+-----------------------------+
| city | varchar(255) | YES | | NULL | |
| district | varchar(255) | YES | | NULL | |
| province | varchar(255) | YES | | NULL | |
| zip_code | varchar(255) | YES | | NULL | |
| json_address2 | json | YES | | NULL | |
》》》全文完《《《来自博客园
1、JPA对象型属性操作
2、SpringBoot+MYSQL 配置支持json数据格式
发布本文时,还未细看,里面用了 mybatis。
3、MySQL 5.7 json jpa_spring data jpa + mysql使用json 类型