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:52728x90
반응형
문제집 댓글 조회 기능을 구현하던 중
이렇게 긴 오류가 나왔다.
잘려서 잘 안보이지만 메모장으로 옮겨두고 분석해보니 엄청나게 길었다.
그 중 오류를 구글에 검색해봤는데
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