CS

[JPA] 필드와 컬림매핑

뱅타 2021. 12. 10. 08:58

매핑 어노테이션

  • @Column : 컬럼 매핑
  • ```@Temporal`` : 날짜 타입 매핑
  • @Enumerated : Enum 타입 매핑
  • @Lob : BLOB, CLOB 매핑
  • @Transient : 특정 필드를 컬럼에 매핑하지 않을 시(매핑 무시)

@Enumerated 사용 시 주의할 점

EnumType.ORDINAL: enum 순서를 데이터베이스에 저장

EnumType.STRING: enum 이름을 데이터베이스에 저장

Enum의 기본 설정은 EnumType.ORDINAL 입니다. 위의 설명처럼 ORDINAL은 DB에 순서만 저장되기 때문에 만약 enum에 다른 값을 추가할 경우 ORDINAL의 번호가 변경될 수 있습니다. 따라서 enumType을 ORDINAL이 아닌 STRING으로 설정하여 사용하시면 위와 같은 경우를 피할 수 있습니다.

//@Enumerated(EnumType.ORDINAL) Ordinal보다 Strin으로 사용하는것을 추천합니다.
@Enumerated(EnumType.STRING)
private RoleType roleType;

@Temporal

날짜 타입(java.util.Date, java.util.Calendar)을 매핑할 때 사용.

최신 Hibernate에서는 LocalDate, LocalDateTime을 지원해서 생략 가능합니다.

@Temporal(TemporalType.TIMESTAMP)
    private Date createdDate;

    @Temporal(TemporalType.TIMESTAMP)
    private Date lastModifiedDate;

@Lob

매핑하는 필드 타입이

String -> CLOB

나머지 -> BLOB

으로 매핑됩니다.

728x90
반응형

'CS' 카테고리의 다른 글

[HTTP] URI와 웹 브라우저 요청 흐름  (0) 2021.12.14
[HTTP] 인터넷 네트워크  (0) 2021.12.13
[JPA] 엔티티매핑  (8) 2021.12.09
[JPA] 준영속 상태  (0) 2021.12.08
[jpa] 영속성컨텍스트1  (0) 2021.12.07