Just Do IT!

[Error] Unsatisfied dependency expressed through constructor parameter 0 에러 본문

개발 공부/Error

[Error] Unsatisfied dependency expressed through constructor parameter 0 에러

MOON달 2024. 10. 23. 09:52
728x90
반응형

 

문제집 댓글 조회 기능을 구현하던 중

 

이렇게 긴 오류가 나왔다.

잘려서 잘 안보이지만 메모장으로 옮겨두고 분석해보니 엄청나게 길었다.

 

그 중 오류를 구글에 검색해봤는데

 

Unsatisfied dependency expressed through constructor parameter 0

 

이런 오류가 발생했던 것이었다.

빈 생성시 필요한 것이 빠졌거니 잘못 생성했으니 고치라는 의미였다.

 

나는 controller, service, repository 다 들어가봤는데 도무지 나오지 않았는데 시간이 좀 지난 다음에야 찾을 수 있었다.

BookCommentLikeRepository에서 countByBookCommentId 메서드를 정의할 때, BookCommentLike 엔티티에 bookCommentId라는 속성이 없어서 발생하는 문제였다.

 

처음에는

@Repository
public interface BookCommentLikeRepository extends JpaRepository<BookCommentLike, Long> {

    // 좋아요 수 계산
    long countByBookCommentId(Long bookCommentId);

}

 

이렇게 BookCommentId라고 정의했었다.

 

그런데 BookCommentLike entity를 보면,

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "comment_id", nullable = false)
    private BookComment commentId;

 

이렇게 commentId라고 정의되어있는 걸 못 보고 그냥 냅다 BookCommentId라고 한 것이었다.

 

 

그래서 repository를 수정해주었다.

 

수정된 코드

@Repository
public interface BookCommentLikeRepository extends JpaRepository<BookCommentLike, Long> {

    // 좋아요 수 계산
    long countByCommentId(BookComment commentId);

}

 

 

 

 

수정한 뒤에 다시 테스트 해보니 정상적으로 작동되고, 조회 기능도 잘 작동하는 걸 볼 수 있었다.

생각하지 못한 에러였는데 앞으로 주의해야겠다.

728x90