Entity template

Материал из DevelopmenOnTheEdge
Версия от 17:43, 21 октября 2015; Lan (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Шаблон для сущности упрощает создание похожих сущностей, позволяя наследовать неизменённые свойства из шаблона. Шаблоны размещаются вот здесь:

 /be4/src/com/beanexplorer/enterprise/metadata/model/templates/

Сохраняются в обычных yaml-файлах, как сущности. Но следует помнить, что имя шаблона не совпадает с именем реальной сущности. Поэтому в тексте запросов надо использовать Freemarker-выражения для обращения к текущей сущности. Например, так:

 SELECT ${entity.primaryKey} AS "Code", name AS "Name" FROM ${entity.name}

Для создания нового шаблона надо расположить его в том же каталоге и зарегистрировать в списке Templates.TEMPLATES. При создании или изменении шаблона следует прогнать юнит-тест TemplatesTest. Если упал, скорее всего написан некорректный yaml.

Для использования шаблона необходимо при описании сущности указать template: <имя шаблона>. Затем переопределять то, чего в шаблоне не хватает. Пример есть в модуле financial:

 /beclipse/modules/financial/src/meta/entities/intangibleTypes.yaml

На текущий момент в шаблоне никак не задать группу ролей. Отдельные роли можно, а группы придётся определять в самой сущности. Также пока недоделано сохранение сущности, содержащей ссылку на шаблон (будет сделано).

Использовать шаблон можно только для сущностей, определённых в текущем проекте (в meta/entities). Нельзя задавать шаблон в meta/modules, так как сущности оттуда уже кастомизируют сущность из соответствующего модуля и не могут одновременно наследовать шаблон.