본문 바로가기
Develop

[Error] invalid comparison: java.util.ArrayList and java.lang.String 해결

by 빈급 2023. 9. 13.

오랜만에 mybatis에서 동적 쿼리 foreach를 사용하다가 정말 바보 같은 실수로 오류가 나서 이제부터는 오류도 정리해볼까 해서 정리를 하게 됐습니다.

 

먼저 console 창에 뜬 오류 화면입니다. 다시 봐도 어질어질하네요..

에러 화면1

 

에러 내용을 그대로 해석해 보면 "잘못된 비교" : ArrayList와 String이 원인 인걸 알 수 있습니다.

 에러 발생 위치는 ### Error querying database와 Caused by: org.apache.ibatis.exceptions.PersistenceException 를 통해 mybatis를 사용한. xml 파일이라고 추측할 수 있었습니다.

 

 

아래 사진이 에러가 발생한 쿼리입니다

에러 발생 원인

 

 아래 사진을 통해 systemName은 List라는 걸 알 수 있습니다. 제가 systemName을 List로 선언해 놓고 if 절에서!= 를 사용해 문자열 ""과 비교했기 때문에 발생했던 것..

 

 아래 사진처럼 리스트의 size를 비교하는 것으로 수정하니 바로 해결됐습니다!

해결 방법