스프링데이터 JPA - 도메인 클래스 컨버터

2021. 2. 8. 11:32JPA/SPRING DATA JPA

도메인 클래스 컨버터

  • 컨트롤러에서 파라미터로 엔티티의 ID를 받는 것 대신, 엔티티로 받아 객체를 바인딩 해주는 기능.
  • 트랜잭션이 없는 범위에서 엔티티를 조회했음으로 엔티티를 변경하지 않고 조회용으로만 사용해야한다(변경해도 DB 반영 안됨)
  • 도메인 클래스 컨버터도 레퍼지토리를 통해 엔티티 조회.
//도메인 클래스 컨버터 적용 전
@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(); 
	} 
}