ServiceBuilder не создает класс FinderImpl?

Я создаю некоторые сервисы с помощью Liferay 7. Но классы FinderImpl и FinderUtil не создаются после создания сервисов. Я выполнил следующие шаги:

  1. Создан проект построителя сервисов.
  2. Созданы столбцы поиска.
  3. Создал и развернул *-api и *-service... где * — имя проекта/службы.
  4. Обновите проект, используя gradle -> Refresh Gradle Project.
  5. Перетащите *-service и *-api на работающий сервер.

Результат: таблица создается, но классов *FinderImpl и *FinderUtil нет в проекте.


person Abhishek Jain    schedule 23.11.2016    source источник


Ответы (1)


Вы должны создать свой класс *FinderImpl и перестроить службу, потому что классы Finder не создаются по умолчанию. Согласно документации Liferay:

Первый шаг — создать класс *FinderImpl в пакете сохраняемости службы. Например, для приложения Guestbook можно создать класс EntryFinderImpl в пакете com.liferay.docs.guestbook.service.persistence.impl. Ваш класс должен расширять BasePersistenceImpl<Entry>.

Запустите Service Builder, чтобы сгенерировать интерфейс *Finder и класс *Util для средства поиска. Service Builder создает интерфейс *Finder и служебный класс *FinderUtil на основе класса *FinderImpl. Измените свой класс *FinderImpl, чтобы он реализовывал интерфейс *Finder, который вы только что создали:

Источник: https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/custom-sql

person glw    schedule 23.11.2016
comment
Создан интерфейс Finder. Я реализовал этот интерфейс, но класс FinderUtil не был создан!! - person Abhishek Jain; 24.11.2016
comment
Вы должны повторно запустить gradlew buldService для создания классов FinderUtil. - person brandizzi; 24.11.2016