[dispatcherServlet]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [jakarta.el.PropertyNotFoundException: Property [f_seq_number] not found on type [co m.ex.springboot.freeboard.dto.FreeboardDto]]을(를) 발생시켰습니다.
해결 방법
lombok이 그냥 인식이 안되는거였음 getter와 setter를 지웠다가 다시 저장함
또 다른 삽질..
JQuery cdn도 안넣어놓고 JQuery 구문 쓰면서 왜 안되냐고 함...ㅠㅠ
--참고. 쿼리문 실행순서 : from - where - group - having - select - orderby
select * from free_board where f_delete = 0 AND f_title LIKE '%열%' order by f_seq_number desc;
--1. 삭제안된 게시물 중 검색어 일치하는 결과값을 시퀀스넘 내림차순 정렬
select rownum, free_board.* from free_board where f_delete = 0 AND f_title LIKE '%열%' order by f_seq_number desc;
--1. 나쁜 예: select에 들어있는 rownum이 먼저 붙고 orderby가 실행되므로 rownum이 순서가 맞지않다. 참고 확인
select rownum as rn, f.* from (select * from free_board where f_delete = 0 AND f_title LIKE '%열%' order by f_seq_number desc) f;
--2. 1을 기준으로 rownum as rn 컬럼 부여
select * from (select rownum as rn, f.* from (select * from free_board where f_delete = 0 AND f_title LIKE '%열%' order by f_seq_number desc) f) where rn BETWEEN 1 AND 10;
--3. 2를 기준으로 페이지에 맞는 결과값만 도출.
-- 따로나눈이유 : 2에 포함시키면 rownum이 1부터 시작하는것만 가능하므로 중간값 구할때 적용이 안된다.
--String 검색기준 = 컬럼명;
--String 검색어 = "%"+검색키워드+"%";
--endpagenum = 한페이지 갯수 * pagenum
--startpagenum = endpagenum-한페이지갯수+1;
select * from (select rownum as rn, f.* from (select * from free_board where f_delete = 0 AND #{검색기준} LIKE #{검색어} order by f_seq_number desc) f) where rn BETWEEN #{startpagenum} AND #{endpagenum};
--최종. 괄호 제일 안쪽의 select *부분은 필요한 컬럼만 따로 적는다.