해결된 질문
23.12.19 14:25 작성
·
341
·
수정됨
0
@Enumerated(EnumType.STRING)
private OrderStatus status; // 주문 상태 [ORDER, CANCEL]
db에 Enum 타입을 다룰 때 ordinal이 아닌 문자로 다뤄야 한다는 걸 들은 적이 있는데
강의에서도 몇글자 줄이려다가 장애가 발생한다고 말씀하십니다. 그러면 ordinal로 저장하는 이점을 포기하고도 반드시 문자로 저장하는 것인가요? 데이터가 많아지면 불리하지 않은가요
답변 1
1
안녕하세요. CS님, 공식 서포터즈 OMG입니다.
JPA 기본편강의에서도 설명해주시지만, ORDINAL일 시의 발생할 수 있는 문제점(Enum의 순서가 바뀔 경우 데이터 꼬일 수 있음) 이 크리티컬하여 STRING으로 하셔야 합니다 😀
예시)
[ORDER:1, CANCEL:2] -> 주문 상태가 STOP이 추가되었을 때,
[ORDER:1, CANCEL:2, STOP:3] 의 순서로 Enum을 정의하면 문제가 없겠지만
[STOP:1, ORDER:2, CANCEL:3]의 순서가 정의되어 문제가 발생할 수 있습니다.
감사합니다.
2023. 12. 19. 17:22
문자로 검색하는 것에 대한 약간의 손해는 그냥 감수해야 되는 부분일까요?