はじめに
引き続きサーバー側の対応を進めています。
今回はタイトルにある通り、エラーが発生した場合のロールバック対応を備忘録的に記事にしておこうと思います。
ロールバック対応
対応の詳細は以下です。
internal fun <T> PipelineContext<Unit, ApplicationCall>.rollbackTransaction(statement: Transaction.() -> T): T {
return transaction {
try {
statement()
}
catch (ex: Exception) {
rollback()
throw ex
}
}
}
以上になります。
extensionで実装しておくと呼び出しもこれまでと変わらず対応できて便利ですね。
transactionを返す前にdbに接続するような処理を実装してもいいと思います。
さいごに
最近時間の進行の速さに頭を悩まされています、もう2月中旬とは、、、