Динамические хуки в OrientDB

Для использования хуков в вашем документе требуется наследовать класс документа от базового класса OTriggered. Затем укажите свойство для нужного вам события.

Доступны следующие события:

  • onBeforeCreate, вызывается перед созданием документа
  • onAfterCreate, вызывается после создания документа
  • onBeforeRead, вызывается перед чтением документа
  • onAfterRead, вызывается после чтения документа
  • onBeforeUpdate, вызывается перед обновление документа
  • onAfterUpdate, вызывается после обновления документа
  • onBeforeDelete, вызывается перед удалением документа
  • onAfterDelete, вызывается после после удаления документа

Динамические хуки могут вызвать:

  • Функции, написанные на SQL, JavaScript
  • Статические методы Java

Хук уровня класса

Хуки уровня класса предназначены для всех документов, которые относятся к классу. Ниже приведен пример для установки хука, который будет срабатывать на уровне класса Invoice.

CREATE CLASS Invoice EXTENDS OTriggered
 ALTER CLASS Invoice CUSTOM onAfterCreate=invoiceCreated

Создадим функцию invoiceCreated на языке JavaScript которая выведет в консоль номер созданного документа.

CREATE FUNCTION invoiceCreated "print('\\nInvoice created: ' + doc.field('number'));" LANGUAGE Javascript

Попробуем хук, создадим документ Invoice.

INSERT INTO Invoice CONTENT { number: 100, notes: 'This is a test' }

И увидим в консоли сервера:

Invoice created: 100

Хук уровня документа

 

Яндекс.Метрика