回复迟了一点,但可能会有所帮助,所以我将其发布。遇到了完全相同的问题,并且很难找到答案。解决方案是使用
org.hibernate.dialect.SQLServer2012DialectHibernate
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()函数的用法。他们终于解决了!



