계층형 게시판 CRUD 및 페이징 검색기능 완료.

 

오늘 작업중 시간이 오래 걸렸던 것들은 바보같이 JQuery 작성해놓고 정작 JQuery 연결 안해놔서 1시간 고생...ㅠㅠ

 

그리고 페이징과 검색기능 같이 사용할 수 있는 쿼리문 작성하는데 많이 막힘.

 

계층형 쿼리로 먼저 쿼리문 다 짜놓고 거기다가 덮어서 작성했는데 페이징 추가하다보니 거기서 또 막힘...ㅠㅠ

 

처음 작성할때는 LEVEL을 사용해서 계층형 쿼리 짜두었다가 그 위에 ROWNUM 덮으려고 했더니 계속 에러 발생.

 

결국에는 좀 복잡하게 쿼리문 작성.

 

SELECT  *
FROM (
     SELECT  ROWNUM AS RNUM, A.*
     FROM    (
          select * 
          from HierarchicalBoard 
          WHERE 1=1
          <include refid="search"></include>
              
          START WITH boardUpperNo = 0
          CONNECT BY PRIOR boardNo = boardUpperNo
          ORDER SIBLINGS BY boardGroupNo DESC
          ) A
               
     ) 
WHERE RNUM BETWEEN ${rowStart} AND ${rowEnd}

이렇게 해결. 처음에는 RNUM을 제일 안에다가 넣어뒀는데 그랬더니 CONNECT BY 랑 꼬이는지 CONNECT BY 절을 계속 지우라고 함. 지우자니 로직을 새로 짜야겠고.... 그래서 조금 복잡하게 가기로함 ㅠㅠ

 

그리고 interceptor를 처음 적용해봤는데 조금 더 파고들면 다양하게 쓸 수 있을 듯.

 

preHandle은 잘 작성해서 적용했지만 원래 목적이었던 postHandle에서의 처리는 이상하게 response.sendRedirect가  안되서 결국 컨트롤러를 void에서 String으로 변경하고 페이지 이동처리 함.

찾아보면 다 같은 방법으로 사용하던데 이상하게 Redirect하라고 적어놓은 경로가 아닌 context.xml에 interceptor 경로로 mapping 해놓은 경로를 가져와서 넘김. 처음에는 설마 했지만 mapping path를 변경하니까 그 페이지로 넘어가더라..ㅠㅠ 이거는 플젝 끝나고 다시 공부해야함.

 

일단 게시판 두개짜리 프로젝트기도 하고 해서 생각보다 Oracle에서의 막힘은 오히려 처음 설치밖에 없었던 것 같다.

 

 

+ Recent posts