返信が遅くなりましたが参考になればと思い投稿させていただきます。まったく同じ問題があり、それを追跡するのが頭痛の種でした。解決策は、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()
の使用法に注意してください 関数。彼らはついにそれを解決しました!