💡 현재 상황
해당 컨텐츠에 대한 내 코멘트를 뽑아 화면에 뿌려 줘야 하는데 해당 쿼리를 통해 한 화면당 뽑을 리뷰는 언제나 1개뿐!
그래서 ArrayList<Review>에서 Review로 자료형 변환해 줬더니 ClassCastException이 뜸
📍 해결 방법
Dao의 selectList도 selectOne으로 바꿔 줘야 함
여태까지의 화면에서는 3개 이상의 리뷰를 뽑았기 때문에 ArrayList<Review>를 썼는데
해당 화면에서는 1개의 리뷰만 뽑기 때문에 ArrayList<Review>를 쓰는 것은 데이터 소모를 일으킨다고 혼났음 (핑빈에게)
Controller, Service, ServiceImpl, Dao의 ArrayList<Review> 자료형을 모두 Review로 바꿔 줬더니 위의 오류 뜸
selectOne은 1개의 행만 뽑아서 오는 메소드라고 함
여태 나는 COUNT(*)과 같은 1셀(= 오직 1개의 값)만 뽑고 싶을 때 selectOne을 쓸 수 있는 줄 알았는데
Review라는 VO 객체로 1행만 뽑고 싶으므로 selectList가 아닌 selectOne을 써야 했음
Dao의 selectList를
selectOne으로 바꿔 줬더니
코멘트가 잘 뜨는 모습이다
* 추가적으로 selectList를 썼을 때 단 1개의 행만 조회하더라도 어쨌든 ArrayList로 뽑았다면 [Review(~~)]와 같이 list 형식이므로 jsp에서 값을 뽑을 때는 무조건 <c:forEach>를 통해 반복문으로 뽑아야 함