1

CASE条件と結合ステートメントを使用して複数のビューのネイティブクエリtiJPQLクエリを変換するのに役立ちます。表c1とc3はビューです。c1から現在および保留中の情報を取得しようとしています。下記のクエリを見つけてください

    SELECT c3.eqip_id  AS EQIP_ID, 
           CASE  WHEN c1.inst_ts IS NULL OR c1.sent_ts > c1.inst_ts THEN c1.ver_nm  END  AS PEND, 
           CASE  WHEN c1.sent_ts IS NULL OR c1.sent_ts > c1.inst_ts THEN c1.ver_nm  END  AS CURRENT, 
           c1.trm_ver_hist_id AS TRM_VER_HIST_ID 
    FROM   trm_ver_hist_vw c1 
           JOIN(SELECT Max(trm_ver_hist_id) AS TRM_VER_HIST_ID, dvc_id, status 
                FROM   trm_ver_hist_vw 
                WHERE  ver_typ_id = 1  AND status IN( 'C', 'P' ) 
                GROUP  BY dvc_id, status) c2 
             ON c1.trm_ver_hist_id = c2.trm_ver_hist_id 
           JOIN trm_dtl_vw c3  ON c1.dvc_id = c3.trm_id 
    WHERE  c3.co_actv_ind = 'Y'  AND c3.mach_hdwr_asscn_ind = 'Y' AND pin = 'ABC'   

誰かがJPA/JPQLでこのクエリを作成するのを手伝ってもらえますか?

4

1 に答える 1

0

非常に複雑でデータ固有のようです。ネイティブ SQL クエリを使用することをお勧めします。

JPA仕様では、FROM句での選択は許可されていませんが、EclipseLinkではこれがある程度サポートされています。

http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#Sub-selects_in_FROM_clause

于 2012-12-12T15:57:55.330 に答える