目录
(1)按某个字段统计数据
(2)几个表组建视图查询
这里是根据detectSn进行统计,并且过滤掉重复数据(DISTINCT),不需要过滤去掉DISTINCT就可以了。后面跟查询条件。
传的值在上面获取需要用 :value 参数需要价格@Param(“value”)
@Query(value = "select count(DISTINCT detectSn) from tbl_zjpt_vehicleInfo where ifExistAj = :ifExistAj", nativeQuery = true)
Integer queryByIfExistAj(@Param("ifExistAj")String ifExistAj);
首先需要new com.dcsoft.vo.OutViewVehicleInfo 结果info用来存放返回数据。as后面跟与info相同的字段名。 info里面一定要有构造方法。参数为所有的字段。给别名C 和 p ,用c. 和 p. 表示哪个字段需要取哪个数据表里的数据。
后面跟where条件。参数与上面的方式一样,就不多说了。
需要传一个entity 把主查询表entity传上吧
public interface OVVRepository extends JpaRepository<Entity, String>, JpaSpecificationExecutor<Entity>,PagingAndSortingRepository<Entity,String>
page
@Query(value = "select new com.vo.OutViewVehicleInfo(c.drId as drId ,c.vehicleNo as vehicleNo," +
"c.insertTime as insertTime," +
"c.plateColorCode as plateColorCode,c.detectSn as detectSn,c.detectType as detectType," +
"c.detectDate as detectDate,p.detectResult as detectResult) " +
"FROM OutDetectRecordEntity c , OutDetectReportEntity p WHERE c.drId = p.drId and c.vehicleNo like :vehicleNo ")
Page queryAllByVehicleNo(@Param("vehicleNo") String vehicleNo,Pageable pageable);
下面这段代码 是对应的 page 参数 为 页码 每页数据个数 排序方式。
PageRequest pageRequest = new PageRequest(vehicleQueryParam.getPageNum() - 1,
vehicleQueryParam.getPageSize(), new Sort(new Order(Direction.DESC, "insertTime")));
Page page = null;
碰到其他的再更新吧...
有nativeQuery = true 和 没有的区别:
有nativeQuery = true时,是可以执行原生sql语句,所谓原生sql,也就是说这段sql拷贝到数据库中,然后把参数值给一下就能运行了,比如:
@Query(value = "select * from product_rel where audit_id=?1 and process_object=0 ",nativeQuery = true)
List
@Query(value = "select new com.dachengsoft.yszhjc.pojo.zhclglInfo.CountVehSum (count(a.clid) as amount,SUBSTRING(a.jdrq,1,4) as jdrq) from CheliangEntity a where ?1 < a.jdrq GROUP BY substring(a.jdrq,1,4)")
List count5(String year);
主要是针对,你所需要的字段,没有对应的实体来接收这些数据。
分析:首先创建接收info 字段要与 as 后的amount 和 jdrq 字段名一样且数据类型一样。
第二:接收的info 一定要 有一个 全参 构造方法。
如果说是想要查询两个表里的 某些字段,也是这种方式,新建一个vo info类,字段名必须与 返回数据的字段名一致,必须有一个全参构造方法。