ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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를 만들 일은 적다고 보면 된다.

Designed by Tistory.