Я создал портлет JSR-268 для Liferay, который использует сервисы для взаимодействия с базой данных. Я могу развернуть портлет без проблем или ошибок, но таблица, определенная сервисами, не составлена!
Я не получаю "таблицы, не найденной" ошибка, когда я тестирую портлет. Я не получаю ошибок вообще! Таблица просто не находится там в базе данных. Я нашел другие вещи в Интернете, говоря, что я должен использовать сгенерированный "create.sql" файл, который создал Сервисный Разработчик Liferay, но я не вижу тот файл нигде.
Кто-то может выручить меня?
Таблицы никогда не создавались? У меня была аналогичная проблема, когда я вручную удалял таблицы. Я думал, что они будут созданы снова при повторном развертывании портлета, но этого не произошло.
Изучив исходный код, я обнаружил, что Liferay хранит информацию о портлетах в таблице servicecomponent
и проверяет 2 вещи перед выполнением (псевдо) SQL в META-INF / таблицах. sql
:
build.number
в service.properties
должен быть выше, чем тот, который хранится в servicecomponent
, ] tables.sql
должен отличаться от того, который хранится в сервисном компоненте
. Только тогда таблицы .sql
выполняется.
Простой способ добиться этого - удалить все записи в сервисном компоненте
, адресующие ваш портлет.