jpa 映射 mysql json 對象


測試數據:

其中,tagIDList為json類型

[{"tagID": "1", "tagName": "tag1"}, {"tagID": "2", "tagName": "tag2"}]

 

那我們怎么通過jpa映射呢?

一,添加依賴

<!-- https://mvnrepository.com/artifact/com.vladmihalcea/hibernate-types-52 -->
<dependency>
    <groupId>com.vladmihalcea</groupId>
    <artifactId>hibernate-types-52</artifactId>
    <version>2.12.1</version>
</dependency>

 

二,Entity添加注解

1 @TypeDef(name = "json", typeClass = JsonStringType.class)

2 @Type(type = "json")

3 @Column(name="tagIDList",columnDefinition = "json" )

 
import com.vladmihalcea.hibernate.type.json.JsonStringType;
import lombok.Data;
import org.hibernate.annotations.*;
 
import javax.persistence.*;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
import java.util.List;
 
/**
 * 廣告模型
 */
@Data
@Entity
@Table(name="ad_advertisement",catalog = "ss_business")
@TypeDef(name = "json", typeClass = JsonStringType.class)
public class AdAdvertisement extends SuperBaseModel {
 
  /**
   * 標簽
   */
  @Type(type = "json")
  @Column(name="tagIDList",columnDefinition = "json" )
  private List<AdTag> tagIDList;
 
}

 

看一下AdTag

package com.tenyears.webAD.model;
 
import com.tenyears.model.base.SuperBaseModel;
import lombok.Data;
import org.hibernate.annotations.GenericGenerator;
 
import javax.persistence.*;
 
/**
 * 標簽模型
 */
@Data
@Entity
@Table(name="ad_tag",catalog = "ss_business")
public class AdTag {
 
  /**
   * 主鍵
   */
  @Id
  private long tagID;
 
  /**
   * 標簽名
   */
  @Column(name="tagName")
  private String tagName;
 
 
}

 

三,請求驗證


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM