본문 바로가기
인프런 강의/실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[JPA] 필드와 컬럼 및 기본 키 매핑 어노테이션

by 해삼2 2024. 1. 29.
728x90
반응형
필드와 컬럼 매핑 어노테이션 정리
@Column 컬럼 매핑

 

@Temporal 날짜 타입 매핑

 

LocalDate, LocalDateTime을 사용할 때는 생략 가능(최신 하이버네이트 지원)

@Enumerated enum 타입 매핑

 

 

ORDINAL 사용은 Enum 값의 추가, 삭제, 순서 변경에 취약하며,

가독성과 유지보수성이 낮아 추천되지 않습니다. 대신, EnumType.STRING을 사용 !!

@Lob BLOB, CLOB 매핑

 

데이터베이스 BLOB, CLOB 타입과 매핑 
• @Lob에는 지정할 수 있는 속성이 없다. 
• 매핑하는 필드 타입이 문자면 CLOB 매핑, 나머지는 BLOB 매핑
• CLOB: String, char[], java.sql.CLOB 
• BLOB: byte[], java.sql. BLOB

 

@Transient

 

특정 필드를 컬럼에 매핑하지 않음(매핑 무시)

 

 

*바쁜 사람을 위한 정리

@Column: 필드와 데이터베이스 컬럼 매핑.
      @Column(name = "columnName")
@Temporal: 날짜 타입 매핑.
      @Temporal(TemporalType.DATE)
@Enumerated: Enum 타입 매핑.
      @Enumerated(EnumType.STRING)
@Lob: BLOB, CLOB 매핑.
     @Lob
@Transient: 특정 필드를 데이터베이스 컬럼에 매핑하지 않음.
     @Transient

 


기본 키 매핑 어노테이션 정리

 

IDENTITY
데이터베이스가 직접 조정(순차적으로 감)
MySql에서 사용
예) @GeneratedValue(strategy = GenerationType.IDENTITY)
결과값) 1, 2, 3, 4 

SEQUENCE
데이터베이스 시퀀스 오브젝트 사용, 
ORACLE에서 사용
예) @GeneratedValue(strategy = GenerationType.SEQUENCE)
결과값) 1, 2, 3, 4 

AUTO 방언에 따라 자동 지정, 기본값

보통은 AUTO로 두고 사용 함 

(AUTO로 두면 지금 내가 사용 하는 데이터베이스 문법을 자동으로 사용 해줌)

 

 

*바쁜 사람을 위한 정리

IDENTITY는 MySQL과 같은 데이터베이스에서 사용되며, 데이터베이스가 기본키 값을 자동으로 생성하고 순차적으로 증가시키는 방식입니다. SEQUENCE는 Oracle과 같은 데이터베이스에서 사용되며, 데이터베이스의 시퀀스 오브젝트를 활용하여 기본키 값을 생성합니다. AUTO는 JPA가 데이터베이스에 따라 적절한 전략을 자동으로 선택하는 방식입니다.
728x90
반응형