Spring/Spring Data JPA

Spring Data JPA - 도메인 클래스 컨버터

jddng 2022. 3. 21. 11:46
728x90
반응형

 

 

도메인 클래스 컨버터

 

 Spring이 내부적으로 HTTP 파라미터로 엔티티의 PK가 넘어오면 엔티티 객체를 찾아서 바인딩해준다.

 

 

도메인 클래스 컨버터를 사용하기 전

@RestController
@RequiredArgsConstructor
public class MemberController {

    private final MemberRepository memberRepository;
    
    @GetMapping("/members/{id}")
    public String findMember(@PathVariable("id") Long id) {
        Member member = memberRepository.findById(id).get();
        return member.getUsername();
    }
}

 

도메인 클래스 컨버터 사용

@RestController
@RequiredArgsConstructor
public class MemberController {
    private final MemberRepository memberRepository;
    
    @GetMapping("/members/{id}")
    public String findMember(@PathVariable("id") Member member) {
        return member.getUsername();
    }
}

 

주의 : 도메인 클래스 컨버터로 엔티티를 파라미터로 받으면, 이 엔티티는 단순 조회용으로만 사용해야 한다.

       (트랜잭션이 없는 범위에서 엔티티를 조회했으므로, 엔티티를 변경해도 DB에 반영되지 않는다.)

 

 

 

728x90
반응형