@TypeDef, @Type

Seung jun Cha·2023년 4월 28일
0
  • 개념 : Hibernate에서 사용자 정의 데이터 유형을 지원하는 애노테이션으로 name 속성은 유형의 이름을 나타내며, typeClass는 유형을 구현하는 클래스를 지정합니다.

예를들어

 @TypeDef(name = "json", typeClass = JsonStringType.class)
 public class UserEntity extends BaseEntity	{
 
  @Type(type = "json")  // 적용할 타입의 이름
  private Map<String, Object> meta;
    }

인 경우에는 Hibernate에서 json이라는 이름의 사용자 정의 데이터 유형을 만드는 것입니다. JsonStringType 클래스는 Hibernate에서 제공하는 JsonType 클래스를 확장하여, JSON 형식으로 저장된 문자열 데이터를 엔티티의 필드에 매핑할 수 있도록 해줍니다. 따라서 @TypeDef가 선언된 UserEntity클래스의 meta 필드는 JSON 형식으로 저장된 문자열 데이터를 매핑할 수 있게 됩니다.

typeClass = JsonStringType.class에서 JsonStringType을 사용하기 위해서는 아래의 의존성이 필요하다. (hibernate-types 이라고 검색하면나옴)

implementation 'com.vladmihalcea:hibernate-types-52:2.19.2'

0개의 댓글