Таблица SQL, не составленная при развертывании ВОЕННОГО файла на Liferay

Я создал портлет JSR-268 для Liferay, который использует сервисы для взаимодействия с базой данных. Я могу развернуть портлет без проблем или ошибок, но таблица, определенная сервисами, не составлена!

Я не получаю "таблицы, не найденной" ошибка, когда я тестирую портлет. Я не получаю ошибок вообще! Таблица просто не находится там в базе данных. Я нашел другие вещи в Интернете, говоря, что я должен использовать сгенерированный "create.sql" файл, который создал Сервисный Разработчик Liferay, но я не вижу тот файл нигде.

Кто-то может выручить меня?

6
задан Brian Tompsett - 汤莱恩 1 October 2016 в 20:07
поделиться

1 ответ

Таблицы никогда не создавались? У меня была аналогичная проблема, когда я вручную удалял таблицы. Я думал, что они будут созданы снова при повторном развертывании портлета, но этого не произошло.

Изучив исходный код, я обнаружил, что Liferay хранит информацию о портлетах в таблице servicecomponent и проверяет 2 вещи перед выполнением (псевдо) SQL в META-INF / таблицах. sql :

  1. build.number в service.properties должен быть выше, чем тот, который хранится в servicecomponent ,
  2. ] tables.sql должен отличаться от того, который хранится в сервисном компоненте .

Только тогда таблицы .sql выполняется.

Простой способ добиться этого - удалить все записи в сервисном компоненте , адресующие ваш портлет.

11
ответ дан 8 December 2019 в 17:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: