一、jpa需要写一些原生sql,如使用到sum()、max()等函数,group by 分组时:(nativeQuery = true)
1、repository层
//特别注意:必须使用List<Object[]>接收@Query(value ="SELECT SUM(area) as areaSum,ctlx,xzmc FROM jctbct_czkfbj_py GROUP BY ctlx,xzmc", nativeQuery =true)
List<Object[]>getBySjCode();@Query(value ="SELECT SUM(area) as areaSum,ctlx,cmc FROM jctbct_czkfbj_py WHERE cdm=?1 GROUP BY ctlx,cmc", nativeQuery =true)
List<Object[]>getByCjCodeAll(String code);
public List<JctbctYjjbntPyResult>getAll(List<Object[]> objects){
List<JctbctYjjbntPyResult> list =newLinkedList<JctbctYjjbntPyResult>();for(Object[] obj : objects){
JctbctYjjbntPyResult jctbctYjjbntPyResult =newJctbctYjjbntPyResult();
jctbctYjjbntPyResult.setAreaSum(String.valueOf(obj[0]));
jctbctYjjbntPyResult.setBhlx(String.valueOf(obj[1]));
jctbctYjjbntPyResult.setMc(String.valueOf(obj[2]));
list.add(jctbctYjjbntPyResult);}return list;}
二、jpa实现类似mybatis判断
@Query(value ="SELECT SUM(shape_area) as areaSum FROM spj_yjjbnt_intersect_stbhzyxpj WHERE lx='极重要' AND case ?1 WHEN FALSE THEN qsdwdm=?2 WHEN TRUE THEN 1=1 END", nativeQuery =true)
List<Object>getBasicFarmlandJzy(@Param("code1")boolean code1,@Param("code2") String code2);
一、jpa需要写一些原生sql,如使用到sum()、max()等函数,group by 分组时:(nativeQuery = true)1、repository层//特别注意:必须使用List<Object[]>接收@Query(value = "SELECT SUM(area) as areaSum,ctlx,xzmc FROM jctbct_czkfbj_py GROUP BY ctlx,xzmc", nativeQuery = true) List<Object[]>