목록2025/03/03 (1)
참새의 이야기
@Enumerated(EnumType.STRING)을 깜빡하면 생기는 일
Enum 타입의 필드는 DB에서 tinyint 혹은 enum이라는 type으로 관리된다.예를 들어, 아래와 같이 StudyType이라는 enum 값이 있다고 하자.public enum StudyType { OFFLINE, ASSIGNMENT;}tinyint의 경우라면 각각에 0, 1이라는 숫자가 붙어 관리된다.만약 위와 같은 StudyType에 새로운 값이 추가된다면 어떤 일이 일어날까?OFFLINE에 이어서 기존에는 ASSIGNMENT가 따라왔지만, ONLINE이 사이에 추가되는 경우를 생각해보자.OFFLINE과 ASSGIGNMENT의 tinyint는 1과 2로 밀리게 된다.이런 문제는 삭제 시에도 똑같이 발생한다.enum값과 대응되는 숫자가 바뀔 수 있다는 점이 문제다.이를 방지하기 위해 ..
Spring
2025. 3. 3. 20:40