TIL 2023-01-14

Bruce Han·2023년 1월 14일
0

TIL

목록 보기
9/9
post-thumbnail

이 포스팅의 코드 및 정보들은 강의를 들으며 정리한 내용을 토대로 작성한 것이 일부 존재합니다.

1. JPA의 Entity Converter

    @GetMapping("/events/{eventId}/enrollments/{enrollmentId}/accept")
    public String acceptEnrollment(..., @PathVariable Long eventId, 
    							@PathVariable Long enrollmentId) {
        Study study = studyService.getStudyToUpdate(account, path);
        Event event = eventRepository.findById(eventId).orElseThrow();
        Enrollment enrollment = enrollmentRepository.findById(enrollmentId).orElseThrow();
        eventService.acceptEnrollment(event, enrollment);
        return "...";
    }

위 코드처럼 DB에 뻔하게 정의되어 있는 ID 값으로 데이터를 가져오는 경우에는 Spring Data JPA에서 제공하는 Entity Converter를 이용해서 코드를 줄일 수 있다.

@PathVariable Long eventId, @PathVariable Long enrollmentId
에서
@PathVariable("eventId") Event event, @PathVariable("enrollmentId") Enrollment enrollment
로 바꾸면 eventId에 해당하는 event와 enrollmentId에 해당하는 enrollment를 바로 바인딩 받을 수 있다.

    @GetMapping("/events/{eventId}/enrollments/{enrollmentId}/accept")
    public String acceptEnrollment(..., @PathVariable("eventId") Event event, 
    						@PathVariable("enrollmentId") Enrollment enrollment) {
        Study study = studyService.getStudyToUpdate(account, path);
        eventService.acceptEnrollment(event, enrollment);
        return "...";
    }

4줄이었던 메서드 바디부분이 2줄로 리팩토링 된 것을 확인할 수 있다.

Reference

profile
만 가지 발차기를 한 번씩 연습하는 사람은 두렵지 않다. 내가 두려워 하는 사람은 한 가지 발차기를 만 번씩 연습하는 사람이다. - Bruce Lee

0개의 댓글