-
JPA의 도메인 클래스 컨버터 자동 등록Spring/Spring Data JPA 2020. 4. 25. 02:06
이전에 살펴보았던 Formatter은 도메인 클래스에 name으로 맵핑을 했지만 보통은 id로 하게 된다.
그럼 이제 id를 받아서 person으로 변경을 한 후에 이름을 출력한다던가 하는 일을 해보자.
이 경우 이전과 마찬가지로 Formatter나 Converter를 이용하게 되지만 이번에는 만들지 않고 JPA의 도움을 받아서 만들
어보자. 스프링 데이터 JPA가 지원해주는 기능 중에 도메인 클래스 컨버터 기능이 있다.
이 기능은 아이디에 해당하는 도메인 클래스로 변환을 해주는 컨버터가 자동으로 등록이 된다.
의존성에 h2와 jpa만 추가해준 후 Person 클래스에 @Entity를 붙여준다. 그리고 PersonRepository를 만든다. Id값에서
Entity로 컨버팅 할때 리포지토리를 사용하므로 있어야 한다.
이제 간단한 테스트코드를 만들어서 확인을 해보자. 과연 컨버팅이 되었을까?
이 ID에 해당하는 Entity를 못 찾았기 때문이다. 이 Repository에는 findById라는 메서드를 통해 가져오게 되는데
이 1에 해당하는 Entity가 없기 때문에 NullPointException이 발생한다.
Person 객체를 하나 만들어서 리포지토리에 저장해주자.
그리고 이 savedPerson의 ID를 넣어서 해당 본문이 나오는지 확인해 보자. JPA에 의해서 컨버팅이 되었다면
이와 같은 응답은 "hello seungyeol" 이 나와야 할 것이다.
테스트 케이스가 통과되었으니 별도의 formatter나 converter 없이도 JPA에 의해서 컨버팅이 되는 것을 확인할 수 있었다.
이처럼 도메인 클래스의 경우 컨버터를 스프링 데이터 JPA가 자동으로 등록해주기 때문에 도메인 클래스용
Formatter 나 Converter를 만들 일은 적다고 보면 된다.
'Spring > Spring Data JPA' 카테고리의 다른 글
Spring Data JPA 2. null 처리 관련 애노테이션 (31) 2020.06.01 JPA의 Dialect(방언) (0) 2020.05.25 영속성 컨텍스트(persistence context) (0) 2020.05.24 Spring Data JPA 1. 상속구조와 주요 인터페이스 (0) 2020.05.12 하이버네이트 ORM User guide 1 (0) 2020.05.11