ColumnDef

Материал из DevelopmenOnTheEdge
Перейти к: навигация, поиск
Класс
ColumnDef
Поддерживает документацию
да
Поддерживает extras
да


Определение колонки (ColumnDef) — это модельный объект, соответствующий колонке в базе данных. Обладает следующими свойствами:

  • name — имя колонки. В некоторых движках регистр имеет значение, в некоторых нет. Две колонки не могут отличаться только регистром.
  • typeтип колонки.
  • canBeNull — логическое значение, может ли колонка хранить NULL-значения (по умолчанию — нет).
  • primaryKey — логическое значение, является ли колонка первичным ключом.
  • oldNames — список старых имён колонки. Если колонка когда-то была переименована, разумно указать здесь старое имя. Тогда при обновлении DDL BeanExplorer сгенерирует запрос на переименование колонки без потери данных. Если старое имя не указать, то старая колонка будет удалена и создана новая, что может привести к потере данных.
  • defaultValue — значение по умолчанию.
  • reference — ссылка, если колонка является ссылкой на ключ в другой таблице:
    • Либо просто имя целевой таблицы (ссылка на первичный ключ). Не рекомендуется использовать при ссылках на таблицы, определённые в m4!
    • Либо <имя таблицы>.<имя колонки>: явное задание целевой колонки
    • Либо список таблиц для generic-ссылки.
    • Либо совокупность двух полей: to — сама ссылка (с указанием колонки или нет), view — имя selection view.
    Для колонки-ссылки можно не указывать тип, если целевая таблица определена в be4-проекте, либо это generic-ссылка. В таких случаях тип колонки будет определён автоматически.

Примеры YAML

Текстовая колонка длиной до 30 символов, являющаяся первичным ключом:

- CODE:
    type: VARCHAR(30)
    primaryKey: true

Колонка перечислимого типа со значением по умолчанию (обратите внимание, надо брать значение по умолчанию в тройные кавычки):

- type:
    type: ENUM('import','export')
    defaultValue: '''import'''

Колонка с датой и значением по умолчанию — текущая дата:

- purchaseDate:
    type: DATE
    defaultValue: NOW()

Текстовая колонка максимальной длины 255 символов, допускающая значения NULL:

- comments:
    type: VARCHAR(255)
    canBeNull: true

Колонка-ссылка на первичный ключ другой таблицы:

- companyID:
    reference: companies

Колонка-ссылка с явным указанием selection view:

- munCode:
    reference:
      to: munExchangeTypes.munCode
      view: 'MunCode view'

Колонка с generic-ссылкой и документацией:

- ownerID:
    doc: владелец счета
    reference:
      to:
      - companies
      - persons
      view: ''