Я установил Orbeon Forms 2018.1.1 CE, используя Mysql в качестве реляционной базы данных ( Версия Mysql: 8.0.13 ).
Хотя я могу создавать, сохранять и публиковать любую форму, при попытке получить доступ к сводке формы появляется ошибка «Ошибка при выполнении поиска».Та же самая ошибка также отображается каждый раз, когда я пытаюсь найти форму на странице сводки с помощью элемента управления «Формы поиска» в верхней части страницы.
Кроме того, страница сводки всегда пуста, хотя соответствующая таблица в базе данных содержит соответствующие записи.Приложение работает на Apache Tomcat (8.5.35) , а база данных была создана с использованием сценария mysql-2017_2.sql .
Я также проверил файл orbeon.log и нашел следующую запись:
Произошла ошибка
В синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса, чтобы использовать около row_number FROM orbeon_i_current c, (select @rownum := 0) r
в строке 12
Стек вызовов приложений
oxf: /apps/fr/page-flow.xml
чтение страницы просмотра данных вывод 46
element = <service path="/fr/service/(oracle|mysql|postgresql|db2|sqlserver)/search/([^/^.]+)/([^/^.]+)" view="persisten view
= постоянство / реляционный / search.xpl
oxf: / apps / fr / persistence / реляционный / поиск.xpl
чтение процессора выходной 22 * 1034 *
элемент = <p:output name="data" ref="data"/>
имя = данные
ref = данные
Iмне интересно, есть ли какая-либо другая необходимая конфигурация для страницы сводки для правильной работы.
Используя приложение P6Spy, я понял, что следующий запрос, кажется, ответственен за сообщение об ошибке:
SELECT count(*)
FROM (
SELECT c.data_id,
c.document_id,
c.draft,
c.created,
c.last_modified_time,
c.last_modified_by,
c.username,
c.groupname,
c.organization_id,
@rownum := @rownum + 1 row_number
FROM orbeon_i_current c
, (select @rownum := 0) r
WHERE c.app = 'DemoApp' AND
c.form = 'DemoForm'
AND c.draft = 'N'
) a
На самом деле проблема, вероятно, заключается в следующей строке: @rownum: = @rownum + 1 row_number
MySQL представил оконную функцию ROW_NUMBER () начиная с версии 8.0 и в этой строкелитерал row_number переводится механизмом sql как функция.