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);
}다양한 의견 부탁드립니다 (동의도 좋아요~) |
Answered by
songsunkook
Jan 17, 2024
Replies: 2 comments 3 replies
|
Service 단에서 private 메서드로 분리하는 것은 결국 여러 클래스 간의 코드 중복을 막지 못해서 근본적으로 의미가 적다고 생각합니다. 차라리 인터페이스의 default 메서드 기능을 활용해서 Repository 단에서 예외처리를 한 번에 수행하는 것은 어떨까요?? Repository 단에서 default 메서드를 도입할 시 얻을 수 있는 이점
|
3 replies
Answer selected by
Choi-JJunho
|
해당 부분에 대해 Wiki에 문서화 진행했습니다. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Service 단에서 private 메서드로 분리하는 것은 결국 여러 클래스 간의 코드 중복을 막지 못해서 근본적으로 의미가 적다고 생각합니다. 차라리 인터페이스의 default 메서드 기능을 활용해서 Repository 단에서 예외처리를 한 번에 수행하는 것은 어떨까요??
Repository 단에서 default 메서드를 도입할 시 얻을 수 있는 이점
참고 블로그