[server] spring jpa에서 'ordinal' 왜 사용 안할까? (@Enumerated(EnumType.STRING) /@Enumerated(EnumType. ORDINAL) )
[server] spring jpa에서 'ordinal' 왜 사용 안할까? (@Enumerated(EnumType.STRING) /@Enumerated(EnumType. ORDINAL) )
@Enumerated(EnumType. ORDINAL) 방식은 enum 값의 순서(정수 인덱스)를 데이터베이스에 저장한다.
예) enum이 MONDAY, TUESDAY, WEDNESDAY 순서로 정의
MONDAY는 0, TUESDAY는 1, WEDNESDAY는 2로 저장
그런데 jpa에서 @Enumerated(EnumType. ORDINAL)인 ordinal 방법을 사용하지 않고 String 으로 타입을 설정하는 @Enumerated(EnumType.STRING)을 주로 사용한다. 이 때 해당 타입으로 쓰고 싶다면 jpa에서 enum을 사용하게 되면 다음과 같이 어노테이션 @Enumerated(EnumType.STRING)를 붙여주어야 한다. 아무것도 설정하지 않게 되면 (초기 설정) @Enumerated(EnumType.ORDINAL)로 설정된다.
그러면 왜 @Enumerated(EnumType. ORDINAL)을 비선호하는 걸까?
이러한 이유로 많은 개발자와 프로젝트에서는 EnumType.STRING을 선호한다. EnumType.STRING은 데이터의 명확성과 유지보수성을 향상시키며, 애플리케이션의 robustness(견고성)을 높일 수 있다. 데이터베이스 공간과 성능이 중요한 초점이 아닌 한, EnumType.STRING의 사용이 더 바람직하다.
[Spring/Java] Spring Boot 구동 원리 - Dispatcher Servlet (0) | 2024.04.14 |
---|---|
[server] 데이터의 멱등성(idempotency) (0) | 2024.04.14 |
[Spring/Java] Java record (0) | 2024.04.04 |
[Spring/Java] 스프링의 의존성 주입 방식 (DI) (0) | 2024.04.04 |
[객체 지향 프로그래밍] 소프트웨어 설계를 위한 다섯 가지 기본 원칙 : SOLID 원칙 (0) | 2024.04.04 |
댓글 영역