JPA映射数据库JSON类型

2,226 阅读1分钟

1、安装依赖

com.vladmihalcea:hibernate-types-52:2.18.0

2、实体类字段

package com.thh.jpademo.entity;

import org.hibernate.annotations.Type;

import javax.persistence.*;
import java.util.List;

@Table(name = "sys_user")
@Entity
public class SysUser {
   
    private Long id;
   
    private String name;

    @Type(type = "json")
    @Column(columnDefinition = "json")
    private List<String> hobby;
}

@Type :JPA自动生成表示字段的类型

columnDefinition :自定义需要映射的Java类型,通过@TypeDefs自己绑定关联类型

3、新建package说明文件package-info.java,这样就不用在每个实体类上都去定义,整个包共享

@TypeDefs({
        @TypeDef(name = "json", typeClass = JsonStringType.class),
        @TypeDef(name = "jsonObj", typeClass = JsonBinaryType.class)
})
package com.thh.jpademo.entity;

import com.vladmihalcea.hibernate.type.json.JsonBinaryType;
import com.vladmihalcea.hibernate.type.json.JsonStringType;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;