//jpa 的entity查询
String sql = "select * from tableName";
String coutSql = "select count(1) from(" + sql + ")";
String querySql = "SELECT *\r\n" + "FROM\r\n" + " (\r\n" + " SELECT t.*, rownum rn\r\n"
+ " FROM\r\n" + " (" + sql + ") t\r\n" + " )\r\n" + "WHERE\r\n" + " rn > " + m
+ " \r\n" + "AND rn <= " + n + "";
Query queryArrive = entityManager.createNativeQuery(querySql);
Query count = entityManager.createNativeQuery(coutSql);
// 设置JPA的Query返回Map对象
queryArrive.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map<String, Object>> list = queryArrive.getResultList();
List<BigDecimal> countList = count.getResultList();
return RestUtils.wrappQueryResult(list, countList.get(0).intValue());
//引用com.sgcc.uap.core.rest-1.0.jar的package com.sgcc.uap.rest.utils; RestUtils类
public static QueryResultObject wrappQueryResult(List list, long recordCount) {
QueryResultObject queryResult = new QueryResultObject();
queryResult.setItemCount(recordCount);
queryResult.setItems(list);
return queryResult;
}
以上是jpa的entity查询。
List<Map<String, Object>> mapList = mapper.listFrom(form, dateList.size());
BigDecimal sum = mapList.stream().map(x -> new BigDecimal(String.valueOf(x.get("col")))).reduce(BigDecimal.ZERO, BigDecimal::add);
int max = resultTrue1.stream().mapToInt(e -> new Integer(String.valueOf(e.get("col")))).max().orElse(0);
SELECT count(1) from (
select to_char(to_date('2021-01-01','yyyy-mm-dd')+level-1,'yyyy-mm-dd') as START_DATE
from dual connect by level <=to_date('2021-06-20', 'yyyy-mm-dd' )-to_date('2021-01-01','yyyy-mm-dd')+1 )c
select ROUND(count(1) / 172, 2) as cnt_avg ,
count(1) cnt,
dicc.val
from park p
left join
(SELECT dic.TYPE, dic.code, dic.val, dic.id
FROM dictable dic
WHERE type = 'cj') dicc
on dicc.id = p.RISK_ID
where 1=1 and c = 'x' group by dicc.val
以上是xml里写sql,再mapper调用后返回。