Spec-Zone.ru › Sequelize 4

Транзакция

Объект транзакции используется для идентификации текущей транзакции. Он создаётся вызовом Sequelize.transaction().

Для выполнения запроса в рамках транзакции, необходимо передать объект транзакции в объект опций.

См.:

  • Sequelize.transaction

Краткое описание статических членов

Статические публичные члены
public static get

ISOLATION_LEVELS: {"READ_UNCOMMITTED": string, "READ_COMMITTED": string, "REPEATABLE_READ": string, "SERIALIZABLE": string}

Уровни изоляции могут быть установлены для каждой транзакции, передав options.isolationLevel в sequelize.transaction.

public static get

LOCK: Object: {"UPDATE": string, "SHARE": string, "KEY_SHARE": string, "NO_KEY_UPDATE": string}

Возможные варианты блокировки строк.

public static get

TYPES: {"DEFERRED": string, "IMMEDIATE": string, "EXCLUSIVE": string}

Типы могут быть установлены для каждой транзакции, передав options.type в sequelize.transaction.

Краткое описание конструкторов

Публичный конструктор
public

constructor(sequelize: Sequelize, options: Object)

Краткое описание членов

Публичные члены
public get

LOCK: *

Краткое описание методов

Публичные методы
public

afterCommit(fn: Function)

Хук, который выполняется после подтверждения транзакции

public

commit(): Promise

Подтвердить транзакцию

public

rollback(): Promise

Отменить (прервать) транзакцию

Статические публичные члены

public static get ISOLATION_LEVELS: {"READ_UNCOMMITTED": string, "READ_COMMITTED": string, "REPEATABLE_READ": string, "SERIALIZABLE": string} source

Уровни изоляции могут быть установлены на транзакцию, передав options.isolationLevel в sequelize.transaction. По умолчанию установлено значение REPEATABLE_READ, но вы можете переопределить уровень изоляции, передав options.isolationLevel в new Sequelize.

Передайте желаемый уровень в качестве первого аргумента:

return sequelize.transaction({isolationLevel: Sequelize.Transaction.ISOLATION_LEVELS.SERIALIZABLE}, transaction => {

 // your transactions

}).then(result => {
  // transaction has been committed. Do something after the commit if required.
}).catch(err => {
  // do something with the err.
});

Свойства:

Имя Тип Атрибут Описание
READ_UNCOMMITTED *
READ_COMMITTED *
REPEATABLE_READ *
SERIALIZABLE *

public static get LOCK: Object: {"UPDATE": string, "SHARE": string, "KEY_SHARE": string, "NO_KEY_UPDATE": string} source

Возможные варианты блокировки строк. Используются совместно с вызовами find.

t1 // is a transaction
Model.findAll({
  where: ...,
  transaction: t1,
  lock: t1.LOCK...
});

Postgres также поддерживает определенные блокировки во время жадного загрузки, используя OF:

UserModel.findAll({
  where: ...,
  include: [TaskModel, ...],
  transaction: t1,
  lock: {
    level: t1.LOCK...,
    of: UserModel
  }
});

Модель UserModel будет заблокирована, но TaskModel нет!

Свойства:

Имя Тип Атрибут Описание
UPDATE *
SHARE *
KEY_SHARE *

Только Postgres 9.3+

NO_KEY_UPDATE *

Только Postgres 9.3+

Возвращает:

Object

Возвращаемые свойства:

Имя Тип Атрибут Описание
UPDATE *
SHARE *
KEY_SHARE *

Только Postgres 9.3+

NO_KEY_UPDATE *

Только Postgres 9.3+

public static get TYPES: {"DEFERRED": string, "IMMEDIATE": string, "EXCLUSIVE": string} source

Типы могут быть установлены на транзакцию, передав options.type в sequelize.transaction. По умолчанию установлено значение DEFERRED, но вы можете переопределить тип, передав options.transactionType в new Sequelize. Только Sqlite.

Передайте желаемый уровень в качестве первого аргумента:

return sequelize.transaction({type: Sequelize.Transaction.TYPES.EXCLUSIVE}, transaction => {

 // your transactions

}).then(result => {
  // transaction has been committed. Do something after the commit if required.
}).catch(err => {
  // do something with the err.
});

Свойства:

Имя Тип Атрибут Описание
DEFERRED *
IMMEDIATE *
EXCLUSIVE *

Публичные конструкторы

public constructor(sequelize: Sequelize, options: Object) source

Параметры:

Имя Тип Атрибут Описание
sequelize Sequelize

Настроенный экземпляр sequelize

options Object

Объект с опциями

options.autocommit Boolean

Устанавливает свойство autocommit транзакции.

options.type String
  • default: true

Устанавливает тип транзакции.

options.isolationLevel String
  • default: true

Устанавливает уровень изоляции транзакции.

options.deferrable String

Устанавливает ограничения на отложенную или немедленную проверку.

Публичные члены

public get LOCK: * source

См. также:

  • Transaction.LOCK

Публичные методы

public afterCommit(fn: Function) source

Хук, который выполняется после подтверждения транзакции

Параметры:

Имя Тип Атрибут Описание
fn Function

Функция обратного вызова, которая вызывается с подтвержденной транзакцией

public commit(): Promise source

Подтвердить транзакцию

Возвращаемое значение:

Promise

public rollback(): Promise source

Откатить (прервать) транзакцию

Возвращаемое значение:

Promise

Copyright © 2014–present Sequelize contributors
Licensed under the MIT License.
https://sequelize.org/v4/class/lib/transaction.js~Transaction.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API