SpringDataJPA - 도메인 클래스 컨버터

박민수·2023년 11월 14일
0

JPA

목록 보기
23/24
post-thumbnail

도메인 클래스 컨버터

SpringDataJPA에서는 도메인 클래스 컨버터라는 기능을 제공한다. 해당 기능을 사용하면 HTTP 요청은 회원 id를 받지만 도메인 클래스 컨버터가 중간에 동작해서 회원 엔티티 객체로 변환해준다.

도메인 클래스 컨버저 사용 전

@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에 반영되지 않는다.)


참조
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-JPA-%EC%8B%A4%EC%A0%84/dashboard

profile
안녕하세요 백엔드 개발자입니다.

0개의 댓글