@Override public List<DivFtDtl> findByFactorNos(String[] factorNos) { ISearch search = createSearchTemplete(); search.addSearchModeParameters(SearchMode.EQUALS, "factorNo", factorNos); search.setFirstResult(0).setMaxResults(Integer.MAX_VALUE); search.addOrderBy("codeOrder"); return find(search); }
@Override public DivFtDtl findByFactorNoAndRangeNo(String factorNo, String rangeNos) { ISearch search = createSearchTemplete(); search.addSearchModeParameters(SearchMode.EQUALS, "factorNo", factorNo); search.addSearchModeParameters(SearchMode.EQUALS, "rangeNo", rangeNos); search.setFirstResult(0).setMaxResults(Integer.MAX_VALUE); search.addOrderBy("rangeNo"); return findUniqueOrNone(search); }
public Page<Map<String, Object>> queryForPage(String sqlId, ISearch search) { CapSqlSearchQueryProvider provider = new CapSqlSearchQueryProvider(search); String _sql = sqlp.getValue(sqlId, sqlId); StringBuffer sourceSql = new StringBuffer(_sql) .append(_sql.toUpperCase().lastIndexOf("WHERE") > 0 ? " AND " : " WHERE ") .append(provider.generateWhereCause()); Map<String, Object> params = new HashMap<String, Object>(); params.put(CapJdbcContants.SQLPaging_SourceSQL, sourceSql.toString()); // 準備查詢筆數sql StringBuffer sql = new StringBuffer() .append( CapDbUtil.spelParser( (String) sqltemp.getValue(CapJdbcContants.SQLPaging_TotalPage), params, sqlp.getParserContext())); sql.append(' ').append(sqltemp.getValue(CapJdbcContants.SQLQuery_Suffix, "")); if (logger.isTraceEnabled()) { logger.trace( new StringBuffer("\n\t") .append(CapDbUtil.convertToSQLCommand(sql.toString(), provider.getParams())) .toString()); } String sqlRow = sql.toString(); // 準備查詢list sql sourceSql.append(provider.generateOrderCause()); params.put(CapJdbcContants.SQLPaging_SourceSQL, sourceSql.toString()); sql = new StringBuffer() .append( CapDbUtil.spelParser( (String) sqltemp.getValue(CapJdbcContants.SQLPaging_Query), params, sqlp.getParserContext())); sql.append(' ').append(sqltemp.getValue(CapJdbcContants.SQLQuery_Suffix, "")); if (logger.isTraceEnabled()) { logger.trace( new StringBuffer("\n\t") .append(CapDbUtil.convertToSQLCommand(sql.toString(), provider.getParams())) .toString()); } long cur = System.currentTimeMillis(); try { int totalRows = super.queryForInt(sqlRow, provider.getParams()); List<Map<String, Object>> list = super.queryForList(sql.toString(), provider.getParams()); return new Page<Map<String, Object>>( list, totalRows, search.getMaxResults(), search.getFirstResult()); } catch (Exception e) { throw new CapDBException(e, causeClass); } finally { logger.info("CapNamedJdbcTemplate spend {} ms", (System.currentTimeMillis() - cur)); } } // ;
@Override public DivFtDtl findByFactorNo(String factorNo) { ISearch search = createSearchTemplete(); search.addSearchModeParameters(SearchMode.EQUALS, "factorNo", factorNo); return findUniqueOrNone(search); }