Транзакция
Объект транзакции используется для идентификации текущей транзакции. Он создаётся вызовом Sequelize.transaction().
Для выполнения запроса в рамках транзакции, необходимо передать объект транзакции в объект опций.
Краткое описание статических членов
| Статические публичные члены | ||
|---|---|---|
| public static get | ISOLATION_LEVELS: {"READ_UNCOMMITTED": string, "READ_COMMITTED": string, "REPEATABLE_READ": string, "SERIALIZABLE": string} Уровни изоляции могут быть установлены для каждой транзакции, передав | |
| 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} Типы могут быть установлены для каждой транзакции, передав | |
Краткое описание конструкторов
| Публичный конструктор | ||
|---|---|---|
| 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 |
|
Устанавливает тип транзакции. |
| options.isolationLevel | String |
|
Устанавливает уровень изоляции транзакции. |
| options.deferrable | String |
Устанавливает ограничения на отложенную или немедленную проверку. |
Публичные члены
public get LOCK: * source
См. также:
Публичные методы
public afterCommit(fn: Function) source
Хук, который выполняется после подтверждения транзакции
Параметры:
| Имя | Тип | Атрибут | Описание |
|---|---|---|---|
| fn | Function |
Функция обратного вызова, которая вызывается с подтвержденной транзакцией |
Copyright © 2014–present Sequelize contributors
Licensed under the MIT License.
https://sequelize.org/v4/class/lib/transaction.js~Transaction.html