You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
현재 데이터베이스엔 꿈 유형, 꿈 품질과 같은 상태 값들을 char(4) 타입의 코드값으로 저장한다.
@Enumulated를 사용했을 경우에 테이블의 코드값과 Java Enum을 맵핑시키기위해 @Enumerated(EnumType.STRING)을 사용할 수 있을 것이다.
테이블의 컬럼값과 Enum name을 바로 맵핑한다는 것 때문에 Enum 이름이 수정되었을 때 데이터베이스 값이 손상될 수 있다는 문제가 있다. 수정해야 할 상황이 생기든 실수로 바꾸든 코드에서 사용하는 값이 바로 데이터베이스 값으로 들어간다는 것이 유연하지 못한 설계라고 생각하였고 JPA 2.1에서 생긴 엔티티 속성 타입과 데이터베이스 값을 서로 변환하는데 사용할 수 있는 표준화된 API인 @Converter 어노테이션을 사용하였다.
Converter를 이용하여 기존 데이터베이스에 있는 데이터를 손상시지 않고 새로운 Enum값을 수정하거나 추가하는 것이 가능하다.
데이터베이스 코드값을 Enum으로 빠르게 바꾸기 위해 Stream을 한 번만 열도록 HashMap을 사용하였다.