Я хочу получить отчет на своей странице report.jsp, но это занимает слишком много раз, и когда я загружаю (Excel) это с помощью Apache POI, это занимает всего несколько секунд.
Я уже пробовал ниже код,
@RequestMapping(value = "/report")
public String ivrRouteReport(Model model,
@RequestParam(value="startDate", required = false) String startDate,
@RequestParam(value="endDate", required = false) String endDate) {
model.addAttribute("listReport",serviceInterface.getAllReportResponceBetweenDate(startDate,endDate));
return "admin/report";
}
И код загрузки есть,
@RequestMapping(value="/reportDownload", method = {RequestMethod.POST })
public ModelAndView download(Model model,
@RequestParam(value="startDate", required = false) String startDate,
@RequestParam(value="endDate", required = false) String endDate
) {
ModelAndView modelAndView = new ModelAndView("excelReportSummary","reportList",
serviceInterface.getAllReportResponceBetweenDate(startDate,endDate));
return modelAndView;
}
Оба метода контроллера наследуют один и тот же метод DaoImpl,
@Override
public List<Report> getAllReportResponceBetweenDate(String startDate, String endDate) {
String strqry= "SELECT c.caller_id_number as caller_id_number, c.destination_number as destination_number,"
+" c.created_time as created_time, vbDtmf.digit as dtmf FROM VoiceBroadcastDTMF vbDtmf "
+"LEFT JOIN cdr c ON vbDtmf.uuid=c.orig_id where (c.created_time BETWEEN '"+startDate+"%' AND '"+endDate+"%') ORDER
BY c.created_time DESC";
Query query = getSession().createSQLQuery(strqry)
.addScalar("caller_id_number", new StringType())
.addScalar("destination_number", new StringType())
.addScalar("created_time", new StringType())
.addScalar("dtmf", new StringType())
.setResultTransformer(Transformers.aliasToBean(Report.class));
List<Report> reportList =(List<Report>) query.getResultList();
getSession().flush();
return reportList;
}
тогда почему метод контроллера отчетов занимает слишком много времени, чтобы загрузить данные в jsp, а загрузка занимает всего несколько минут? здесь я использую Mysql и его таблица имеет приблизительные 50 тыс. данных.
Спасибо.