카테고리 없음

Spring Boot JPA(Hibernate) Jsonb

Tada.*+ 2023. 2. 21. 11:47
728x90

JSON 객체로 쓰일 class를 하나 정의합니다.

package com.example.postgresql;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

@Getter
@Setter
public class JsonTest implements Serializable {

    public String id;

    public String lable;
}

Entity(테이블)에 JSON 칼럼을 정의합니다. '@JdbcTypeCode(SqlTypes.JSON)' 어노테이션 사용

package com.example.postgresql.entry;

import com.example.postgresql.JsonTest;
import jakarta.persistence.*;
import lombok.Data;
import lombok.RequiredArgsConstructor;
//아래 코드 확인
import org.hibernate.annotations.JdbcTypeCode;
import org.hibernate.type.SqlTypes;


@Data
@RequiredArgsConstructor
@Entity(name = "user_tb")
public class UserEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Integer id;

    @Column(name = "name")
    private String name;

    @Column(name = "gender")
    private String gender;

	//아래 코드 확인
    @JdbcTypeCode(SqlTypes.JSON)
    private JsonTest data;

    public UserEntity(Integer id, String name, String gender) {
        this.id = id;
        this.name = name;
        this.gender = gender;
    }
}

 

public void save(UserEntity entity) {
    JsonTest data = new JsonTest();
    data.setId("id_0");
    data.setLable("lable 정보");

    entity.setData(data);
    userRepository.save(entity);
}
728x90