티스토리 뷰

반응형

 

오늘은 캡스톤 프로젝트를 진행하다

querydsl로 검색 기능 구현 중 booleanBuilder가 동작하지 않는

에러를 해결한 포스팅을 진행해보려고 한다.

 

말로 설명하기 어려운 부분이 있어서

최대한 코드로 열심히 설명할텐데

부디 많은 분들에게 도움이 되었으면 한다.

 

그럼 바로 들어가보자. 

 


 

우선 에러 코드는 다음과 같다.

에러 코드

 

Pageable 기능을 이용해서 Paging 기능을 구현하고

paging에 따른 동적 쿼리를 작성해야 하기 때문에

BooleanBuilder를 이용해서 다음과 같은 메서드를 작성했다.

 

그런데 저 메서드와 다음과 같은 메서드에서

BooleanBuilder를 인식하지 못하는 에러가 발생했다.

 

 

에러를 발생시키는 또 다른 메서드

 

에러메세지는 뭐 당연히

저 줄에서 에러가 난다는 것이었고

BooleanBuilder를 인식하지 못한다는 것까지

감을 잡은 상태였는데

어디서 어떻게 고쳐야할지 몰라

처음에 Controller에 들어가봤다.

 

(Model, PageRequest처럼 주입해줘야하는줄알고,,)

 

그런데 그게 아니었고,

두번째로 Q도메인이 생성되지 않았나 싶어 Q도메인에 컬럼을 추가했는데

그것도 에러가 났다.

(알고 보니 Q도메인에는 컬럼이 잘 들어가 있었던 것)

 

돌고돌아 마지막으로 Repository를 확인해봤는데

답을 찾을 수 있었다.

 

🤔 과연 어떻게 찾았을까..?

 


 

이것은 에러가 발생할 때의 Repository이다.

에러 발생 시의 Repository 코드

 

 

다음은 에러를 해결한 후의 Repsoitory 코드이다.

 

에러 해결 후의 Repository 코드

 

차이가 보이는가?

좀 더 명확하게 설명하자면

 

 

상세히 설명

 

다음과 같이 QuerydslPredicateExecutor<WriterInformation> 코드가

주입되어야 하는 것이다.

 

제대로 주입하고 나면 BooleanBuilder가 작동해 문제가 해결할 것이다.!!

 


 

되게 간단했던 건데 엄청 해맸다. ㅎㅎ

 

(사실 어제도 이 에러가 났었는데

금방 해결해서 내가 기억하고 있을 줄 알고 포스팅을 안했었다.

그런데 오늘 다른 엔티티에서 헷갈려버렸다..)

(역시 에러는 바로바로 기록해놔야 하는 것이라는 걸 또 하나 배웠다! )

 

 

 

 

✔ 여담을 조금만 하자면,,,

 

개발의 세계는 정말 매력있는 것 같다.

실력이 도저히 안 늘고

삽질만 주구장창해서

'나는 이길이 아닌가..?' 하고 자책도 많이 했는데

(요 며칠 사이 슬럼프였다.. 진짜 학교 자퇴할뻔 했다.. TMI,,)

 

그 하루 이틀을 잘 버티고 나니

내가 봐도 실력이 많이 늘었음을 느낀다.

(슬럼프라 오히려 미쳐서(?) 인프런 강의 100만원치 구매하고

하루에 13시간씩 공부했다.ㅋㅋ)

 

아직 많이 부족하지만

자만하지 않고

기죽지 않고!!

열심히 공부해야겠다.

 

그럼 다들 오늘도 파이팅이다. 🔥

반응형