sql >> データベース >  >> RDS >> Sqlserver

Hibernate (/JPA) サーバー側ページングと MS SQL Server

    返信が遅くなりましたが参考になればと思い投稿させていただきます。まったく同じ問題があり、それを追跡するのが頭痛の種でした。解決策は、org.hibernate.dialect.SQLServer2012Dialect を使用することです これは Hibernate 4.3.0 に含まれています。生成されたクエリは次のようになります (列名とエイリアスなしで実際の Hibernate ダンプを貼り付けます):

    WITH query 
         AS (SELECT inner_query.*, 
                    Row_number() 
                      OVER ( 
                        ORDER BY CURRENT_TIMESTAMP) AS __hibernate_row_nr__ 
             FROM   (SELECT TOP(?) <COLUMN_NAMES> AS <ALIASES>
    FROM <TABLE_NAME>
    ) inner_query) 
    SELECT <ALIASES>
    FROM   query 
    WHERE  __hibernate_row_nr__ >= ? 
           AND __hibernate_row_nr__ < ?
      

    内部クエリと Row_number() の使用法に注意してください 関数。彼らはついにそれを解決しました!



    1. 列の日付範囲内の各日付に発生する行数をカウントします

    2. 年齢を計算するためのMySQLの日付の違い

    3. MySQLでCOUNTを使用するときにnullではなく0を返す方法

    4. 一部のバージョンのOracleでは、相関サブクエリにネスト制限がありますか?