Repisitory의 findByXXX() 중복사용에 대해 #161
-
Repisitory의 findById() 중복사용에 대해 고민입니다. // 예시 Method
public UserTokenRefreshResponse refresh(UserTokenRefreshRequest request) {
...
UserToken userToken = userTokenRepository.findById(Long.parseLong(userId))
.orElseThrow(() -> new IllegalArgumentException("refresh token이 존재하지 않습니다. request: " + request));
...
} 나중에 하나의 서비스에서 동일한 findByXXX() 가 중복되어 사용되는 경우 개인적으로는 getByXXX라는 네이밍이 생각나네요 private Object getByXXX(String XXX) {
return someThingRepository.findByXXX(XXX)
.orElseThrow(() -> new SomethingException.withDetail("detail message XXX: " + XXX);
} 다양한 의견 부탁드립니다 (동의도 좋아요~) |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
Service 단에서 private 메서드로 분리하는 것은 결국 여러 클래스 간의 코드 중복을 막지 못해서 근본적으로 의미가 적다고 생각합니다. 차라리 인터페이스의 default 메서드 기능을 활용해서 Repository 단에서 예외처리를 한 번에 수행하는 것은 어떨까요?? Repository 단에서 default 메서드를 도입할 시 얻을 수 있는 이점
|
Beta Was this translation helpful? Give feedback.
-
해당 부분에 대해 Wiki에 문서화 진행했습니다. |
Beta Was this translation helpful? Give feedback.
Service 단에서 private 메서드로 분리하는 것은 결국 여러 클래스 간의 코드 중복을 막지 못해서 근본적으로 의미가 적다고 생각합니다. 차라리 인터페이스의 default 메서드 기능을 활용해서 Repository 단에서 예외처리를 한 번에 수행하는 것은 어떨까요??
Repository 단에서 default 메서드를 도입할 시 얻을 수 있는 이점
참고 블로그