spring data jpa会用の生sql検索方式
目次
(1)あるフィールドでデータを統計する
(2)いくつかのテーブルがビュークエリを作成します。
(1)あるフィールドでデータを統計する
ここではdetectSnに基づいて統計を行い、重複データ(DISTINCT)をフィルタリングし、DISTINCTをフィルタリングしなくてもいいです。後は条件を調べます。
伝えた値は上で取る必要があります。 パラメータは価格@Param(「value」)が必要です。
イベントを転送する必要があります。 主な照会表をentityにアップロードしてください。
public interface OVVREepository extends Jparepository<Entity、String>、JpaSpecification Exector<Entity>、Paging AndSortingRepository<Entinty、String>
page pageパラメータはinfoです。 対応する上のinfoはentityではありません。
native Query=trueとない違いがあります。
native Query=trueがあるときは、元のsql文を実行することができます。つまり、このsqlをデータベースにコピーして、パラメータ値をあげると実行できます。
@Query(value="select*from producture where audit uid=?1 and processu=0",native Query=true)List findAllByProductAuditId;
(3)ここ5年の年間データ量を統計する(連結表の照会も同じ方式である)
解析:まず、受信infoフィールドを作成するには、as後のamountとjdrqが必要です。 フィールド名は同じで、データの種類は同じです。
第二に、受信したinfoには必ず全参構造方法が必要です。
二つの表の中のいくつかのフィールドを調べたいというなら、この方法で新しいvoを作成します。 infoクラスでは、フィールド名は戻りデータのフィールド名と一致しなければなりません。
(1)あるフィールドでデータを統計する
(2)いくつかのテーブルがビュークエリを作成します。
(1)あるフィールドでデータを統計する
ここではdetectSnに基づいて統計を行い、重複データ(DISTINCT)をフィルタリングし、DISTINCTをフィルタリングしなくてもいいです。後は条件を調べます。
伝えた値は上で取る必要があります。 パラメータは価格@Param(「value」)が必要です。
@Query(value = "select count(DISTINCT detectSn) from tbl_zjpt_vehicleInfo where ifExistAj = :ifExistAj", nativeQuery = true)
Integer queryByIfExistAj(@Param("ifExistAj")String ifExistAj);
(2)いくつかのテーブルがビュークエリを作成します。 new com.dcsoft.vo.OutViewVehicleInfo info 。as info 。 info 。 。 C p , c. p. 。
後はwhere条件です。パラメータは上記と同じです。多くは言いません。イベントを転送する必要があります。 主な照会表をentityにアップロードしてください。
public interface OVVREepository extends Jparepository<Entity、String>、JpaSpecification Exector<Entity>、Paging AndSortingRepository<Entinty、String>
page pageパラメータはinfoです。 対応する上のinfoはentityではありません。
@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;
他のものにあったらまた更新してください。native Query=trueとない違いがあります。
native Query=trueがあるときは、元のsql文を実行することができます。つまり、このsqlをデータベースにコピーして、パラメータ値をあげると実行できます。
@Query(value="select*from producture where audit uid=?1 and processu=0",native Query=true)List findAllByProductAuditId;
(3)ここ5年の年間データ量を統計する(連結表の照会も同じ方式である)
@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クラスでは、フィールド名は戻りデータのフィールド名と一致しなければなりません。