728x90
문제
org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'recommendRestController' defined in file
[\controller\RecommendRestController.class]: Unsatisfied dependency expressed through constructor parameter 0:
Error creating bean with name 'recommendService' defined in file [\service\RecommendService.class]: Unsatisfied dependency expressed through constructor parameter 1:
Error creating bean with name 'recommendRepository' defined in com.content_i_like.repository.RecommendRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration:
Could not create query for public abstract void com.content_i_like.repository.RecommendRepository.update(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Long);
Reason: Either use @Param on all parameters except Pageable and Sort typed once, or none at all
Spring Boot를 가동했더니 갑자기 다음과 같은 에러가 발생하기 시작했다.
빈이 제대로 생성이 안되는데 생성자를 가리키고 있고.. 무슨 에러일까 보다, 맨 아래줄에 보이는 에러를 확인했다.
Repository에서 생선한 메서드에서 @Param이 붙은 곳이 무언가 에러를 발생하고 있었던 것 같다.
확인
@Modifying(clearAutomatically = true)
@Query("update Recommend r set r.recommendTitle = :title, r.recommendContent = :content, r.recommendImageUrl = :image, r.recommendYoutubeUrl = :youtube ,r.lastModifiedAt = current_timestamp where r.recommendNo = :recommendNo ")
void update(@Param("title") String recommendTitle, @Param("content") String recommendContent, @Param("image") String recommendImageUrl, @Param("youtube") String recommendYoutubeUrl, Long recommendNo);
@Query를 확인하고 update 메서드의 매개변수 쪽을 확인하는데 마지막 recommendNo 쪽에 @Param이 빠져있는 것을 확인했다.
순간적으로 다른 매개변수들은 Controller에서 받아온 Request를 통해 처리하고, recommendNo는 따로 처리하다 보니 무의식적으로 @Param을 차별하여 작성해 버린 것 같았다.
@Param을 붙이고 다시 Spring을 시작하니 문제가 해결되었다.
반응형