-
사이드 프로젝트 - Enum converter글또 2022. 1. 23. 00:04
사이드 프로젝트
오류 발생
현재 DB에 있는 한 칼럼은 역정규화를 통해 ", "를 찍어서 보관 중인 것이 있다.
ex) A, B, C
request로 들어올 때는 string list로 들어오는데 이는 코드 상에서 enum으로 관리한다.
즉 DB I/O 작업이 있을 때만 변경을 해주면 된다는 것.
jpa에는 converter를 아주 쉽게 사용할 수 있다.
우리가 구현해야 하는 로직은
List <Enum> -> string, string
string,string -> List <Enum>
변환 로직이다. 근데 하나의 enum에만 사용되는 것이 아니니 genric 하게 코드를 구현해야 한다.
변경 전
enum List로 코드상에서 관리되고 있다.
String으로 반환을 했었는데
아뿔싸
우리의 코드에서는 enum으로 관리가 되고 있다.
무려 하나의 enum type이 아닌 2개 enum들이 list로 관리되고 있다.
그래도 핵심 기능은 같기에 위쪽으로 모아버리고 제네릭으로 구현하면 되지 않을까라는 생각이 처음에 들었다.
근데 @Converter는. class로 실제 클래스를 명시하고 있기에 이는 생성 시 특정 값을 넣어줄 수 없었다.
그래서 구글링을 하던 중 무려 같은 케이스를 발견했고 적용했다. 다 똑같은 고민을 한 적이 있어..
변경 후
이제 enum genric으로 받고 사용한다.
근데 enum을 찾아서 적용해야 하는데 오버 라이딩된 녀석의 시그니쳐는 고칠 수 없으니 생성자로 받아서 사용한다.
이번에 valueOf에 class type을 넣어 사용하는 것을 처음 배웠다. 매번 찾을 때만 사용했었는데..
이제 각각의 구현체들을 만들어 주면 끝이다.
'글또' 카테고리의 다른 글
검색 단어에 따라 에러가 발생한다고? (0) 2022.03.05 도커가 계속 죽어요.. OOM killer (0) 2022.01.23 Atdd [인수 테스트 -1 ]피드백 (0) 2022.01.22 2021.11.25 기록장 (0) 2021.11.24 issue-tracker 피드백 (0) 2021.06.27