728x90
DAO 에서
logger.info("쿼리셀렉트"+query);
찍어보기
대괄호 안에 있는 것 복사해서 DB에 find로 셀렉
find 말고 count 해보면 count 결과값이 나온다.
쿼리문 적고 F5 누르면 됨
( DAO 코드 )
public Map<String, Object> selectArticleList(BoardManageVO vo) {
Map<String, Object> resultMap = new HashMap<>();
List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
try {
Query query = new Query();
query.addCriteria(Criteria.where("del_yn").is("N"));
query.addCriteria(Criteria.where("group_id").is(vo.getGroupId()));
query.addCriteria(Criteria.where("board_id").is(vo.getBoardId()));
if(vo.isNoticeUse()) {
query.addCriteria(Criteria.where("notice_at").is(vo.getSearchNoticeAt()));
}
if(!vo.getSearchImportance().equals("")) {
query.addCriteria(Criteria.where("importance").is(vo.getSearchImportance()));
}
if(!vo.getSearchState().equals("")) {
query.addCriteria(Criteria.where("state").is(vo.getSearchState()));
}
// 개수
long resultCnt = mongoTemplate.count(query, Map.class, BOARD_COLLECTION);
Pagination pagination = new Pagination();
// pageIndex, 총개수, 한 페이지에 출력할 게시물 수, 한 페이지에 출력할 페이지 번호의 수
pagination.pageInfo(vo.getPageIndex(), SF_Utils.convertInteger(resultCnt), vo.getCntOnPage(), 10);
vo.setPagination(pagination);
int page = vo.getPageIndex();
int skip = (page > 0 ? (page -1) : 0);
int limit = vo.getPagination().getRecordCntOnPage(); // 한 페이지에 출력할 게시물 수
Pageable pageable = PageRequest.of(skip, limit);
query.with(pageable);
resultMap.put("pagination", pagination);
Sort sort = Sort.by("ntce_day").descending();
Sort sort2 = Sort.by("reg_date").descending();
query.with(sort).with(sort2);
logger.info("selectQuery [" + BOARD_COLLECTION + "]");
logger.info(query);
logger.debug("*******************************************************");
// 리스트
List<Map> tmpList = mongoTemplate.find(query, Map.class, BOARD_COLLECTION);
for (Map<String, Object> map : tmpList) {
map.remove("_id");
resultList.add(map);
}
resultMap.put("resultList", resultList);
resultMap.put("resultCnt", resultCnt);
} catch (Exception e) {
}
return resultMap;
}
728x90