jpa 映射 mysql json 对象

54 篇文章 0 订阅
20 篇文章 0 订阅

测试数据:

 其中,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;


}

三,请求验证

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Spring Boot中的JPA(Java Persistence API)实现将JSON数据写入MySQL数据库。JPA提供了一种简单的方式来管理对象关系映射(ORM),即将Java对象映射到关系型数据库中的表。 以下是一个简单的示例: 1. 创建一个实体类,用于映射JSON数据到数据库表中的字段。 ```java @Entity @Table(name = "person") public class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private Integer age; // getters and setters } ``` 2. 创建一个Spring Data JPA repository接口,用于定义CRUD操作。 ```java @Repository public interface PersonRepository extends JpaRepository<Person, Long> { } ``` 3. 在Controller中获取JSON数据,并将其转换为Person对象,然后使用PersonRepository将其保存到数据库中。 ```java @RestController @RequestMapping("/person") public class PersonController { @Autowired private PersonRepository personRepository; @PostMapping("/save") public void savePerson(@RequestBody Person person) { personRepository.save(person); } } ``` 这里假设JSON数据的格式与Person类的属性相匹配。如果不匹配,可以使用Jackson库进行转换。 另外,需要在application.properties文件中配置MySQL数据库连接信息,例如: ``` spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=myusername spring.datasource.password=mypassword spring.datasource.driver-class-name=com.mysql.jdbc.Driver ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值