Inflearn Community Q&A
Converter 사용 관련 질문
Written on
·
481
0
JPA에서 entity 필드에 String이 아닌 Enum 타입을 사용한다고 하면,
1. Controller에서 Enum Type으로 변환해서 service(비즈니스 로직)를 사용
2. Entity에서 @Converter 애노테이션을 통해 db에 저장될때 Enum타입으로 변환해서 저장되도록 설정
이렇게 2가지 방식으로 사용할 수 있을 것 같은데요
둘 다 모두 Converter를 정의해서 사용은 하고, 어디에서 이를 적용하느냐의 문제인 것 같은데
어떻게 사용하는게 더 좋은 방식인지 궁금합니다.
Answer 4
0
안녕하세요. 승현님
클라이언트가 소문자로 입력한다면 컨트롤러에서 소문자로 받는다는 뜻이군요?
그렇다면 컨트롤러에서 소문자를 대문자로 변경해서 ENUM으로 바꾸는 작업이 필요할 듯 합니다.
감사합니다.
0
Enum을 BOOKS, CLOTHES, DIGITAL 이렇게 정의한 것을 lowercase로 하여 테스트 해봣는데, 적용이 안되는데
client가 소문자로 입력을 넣었을때도 정상 처리해주고 싶어 질문 드렸었습니다.
0
안녕하세요. 유승현님
JPA가 기본적으로 ENUM 타입을 자동으로 데이터베이스에 매핑해줍니다.
JPA 기본편 강의 - 필드와 컬럼 매핑을 참고해주세요.
감사합니다.
0
@Data
static class Form{
@NumberFormat(pattern = "###,###")
private Integer number;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime localDateTime;
}
Controller에서는 이런 변환 과정 로직을 넣어주지 않고,
위에서 사용하신 것처럼 Entity에서 적용하는 방식이 더 맞는 방식인 것 같긴 한데,
이렇게 사용하면
내부 로직에서 Entity에 값을 넣어줄 때, enum값을 사용하지 못하고 String으로 직접 넣어줘야 하는것 같아서
맞지 않는 방식인것 같기도합니다,





