sql >> Databasteknik >  >> RDS >> Sqlserver

Viloläge (/JPA) sökning på serversidan och MS SQL Server

Lite sent svar, men det kan vara till hjälp så jag lägger upp det. Hade exakt samma problem och huvudvärk att spåra det. Lösningen är att använda org.hibernate.dialect.SQLServer2012Dialect som ingår i Hibernate 4.3.0. Genererad fråga blir (klistra in riktig Hibernate-dump utan kolumnnamn och alias):

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__ < ?

Lägg märke till användningen av inre fråga och Row_number() fungera. De löste det till slut!



  1. Hur väljer man flera rader med deras sammansatta primärnycklar i JOOQ?

  2. Hur kan du få de aktiva användarna anslutna till en postgreSQL-databas via SQL?

  3. Dynamisk uppdateringsfråga i procedur

  4. MySQL:hur man väljer post med senaste datum före ett visst datum