Объекты
Материал из DevelopmenOnTheEdge
Версия от 17:34, 9 октября 2014; Lan (обсуждение | вклад)
Для удобства в контексте выполнения Freemarker всегда содержатся некоторые объекты. Внутри конструкций Freemarker (${}, <#> и <@>) ими можно пользоваться как обычными Java-объектами.
Эти объекты определены везде (в Custom scripts и при задании кода представлений):
- project: объект com.beanexplorer.enterprise.metadata.model.Project; содержит всю иерархию проекта; можно достать любые данные. Примеры:
-
${project.getConnectionProfileName()}
— профиль соединения к базе данных. -
${project.getEntity('myTable').getQueries().get('myQuery').getMenuName()}
— название пункта меню для представления myQuery в таблице myTable.
-
- dbPlatform: строка, определяющая платформу СУБД. Сокращённый вариант для project.getDatabaseSystem().getName(). Пример использования:
-
SELECT <#if dbPlatform == 'sqlserver'>TOP 1</#if>
-
- currentDate: SQL-выражение для текущей даты в текущей версии СУБД
- currentDateTime: SQL-выражение для текущего времени в текущей версии СУБД
- fromFakeTable: SQL-выражение для выборки из псевдо-таблицы (например "FROM DUAL") в зависимости от текущей версии СУБД
- null: специальное значение для работы с NULL в SQL. При использовании
null?str
вы получите строку NULL. Объект null можно передавать в макросы и функции, которые применят?str
к нему. Использование объекта null другими способами ведёт к неопределённому поведению.
Эти объекты могут быть определены при задании кода представлений или кастомизаций:
- module: объект com.beanexplorer.enterprise.metadata.model.Module, представляющий текущий модуль
- entity: объект com.beanexplorer.enterprise.metadata.model.Entity, представляющий текущую entity. Пример:
-
SELECT * FROM ${entity.getName()}
— выбрать все элементы из текущего entity (можно, к примеру, определить такой макрос и использовать его в разных entity).
-
- query: объект com.beanexplorer.enterprise.metadata.model.Query, представляющий текущее представление.
- operation: объект com.beanexplorer.enterprise.metadata.model.Operation, представляющий текущую операцию.
- customization: объект com.beanexplorer.enterprise.metadata.model.PageCustomization, представляющий текущую кастомизацию.