Я хочу использовать разбиение на страницы в своем приложении. Вот простой пример:Play 2.4 Ebean pagination issue
public static List<MyClass> getPage(int page, int size) {
PagedList<MyClass> findPagedList = Ebean.find(MyClass.class).findPagedList(page,size);
return findPagedList.getList();
}
Когда я прошу первую страницу, я получил свой результат без проблем, но когда я задаю вторую страницу (страница = 1, размера = 10, например), я получил следующее сообщение об ошибке
[PersistenceException: запрос бросил SQLException: оконные функции не поддерживают константы как выражения ORDER BY.
Я использую MsSQL-объявление для сервера БД. Как я могу это исправить?
Благодаря
PS здесь сырье SQL
select *
from (
select top 30
row_number() over (order by null) as rn,
t0.ID c0, t0.update_date c1, t0.create_date c2,
t0.code c3, t0.is_fulfilled c4, t0.fulfill_date c5,
t0.fulfill_request_id c6, t0.app_id c7,
t0.access_code_header_id c8, t0.product_id c9
from access_code_details t0
) as limitresult where rn > 20 and rn <= 30
Моя БД конфигурация:
db.default.url="jdbc:sqlserver://127.0.0.1:3333;databaseName=MyDB"
db.default.user=sa
db.default.password="******"
db.default.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
ebean.default.databasePlatform=com.avaje.ebean.config.dbplatform.MsSqlServer2005Platform
ebean.default="model.*"
Поймать реальный код SQL, который отправляется в БД и размещать здесь. – lad2025
Я обновил вопрос. Добавлен SQL. Кажется, что существует реальная проблема с синтаксисом SQL. У меня такая же ошибка, когда я запустил SQL-клиент. Так что я должен каким-то образом изменить этот синтаксис? Спасибо –
Отличный пейджинг, TOP 30, нет ORDER BY, row_number, упорядоченный по NULL. Можете ли вы изменить ** SQL Dialect ** для вашего ORM или sth, как это? – lad2025