티스토리 뷰

-problem

스프링 시큐리티의 기본적인 부분을 적용시키고 테스트를 진행하다가 위 에러를 마주침.

내용만 봤을때 내가 동일한 값을 넘기고 있다고 추측하였음.

-what I tired

일단 Jpa로 조회되는 값이 2개 이상일때 해당 오류가 난다고 한다.

대충 봤을 때에는 조회가 어디서 일어나는지 찾기 어려웠다.

 

-my answer

에러로그에서 에러가 난 부분을 보니 문제는 system.out.print  저 부분이었다.

저 부분을 지웠어야 했는데 지우지 못했다.

에러의 이유는 일단 저렇게 되면 findby~~에서 조회 결과가 하나 이상인데 (내 경우가 그랬다는 것!)
이러면 class로 받아서 담을 수 없게 된다.

 

쉽게 생각했을때에는 그냥 repository에서 List<>로 타입을 바꿔주면 되지만, 내가 짠 코드가 거지같아서 타입을 바꾸면 손볼 곳이 너무나 많았다. 

 

그래서 어짜피 빌더 패턴을 만들어보던 테스트였기에 그냥 if문으로 따로 조건을 걸어서 멤버가 하나만 검색되도록 했다.

(하나의 게시글에 좋아요를 누르는 것을 만들던 것이었는데, 좋아요 테이블에 사용자 이름이 있고 && 그 사용자가 좋아요를 누른 게시글의 id가 있으면 좋아요 테이블에 이 내역을 추가하지 않고 그냥 넘어가게 했다.)

 

-what I learned!

스프링.. 참 편하다... 문제가 있으면 어디에 문제가 있는지, 뭐가 문제이고 어떻게 해야하는지를 다 알려준다..

이렇게 에러를 겪을때마다 로그를 잘 남기면 좋겠다는 생각이 든다.

 

로그도 공부해야겠다!!

댓글