Android + Roomで複数テーブル間のトランザクションを張る

Androidの実装でSQLite + Roomを利用する際、複数テーブル間でトランザクションを張ることがあったのでその備忘録です。

環境

Kotlin 1.5.10
Room 2.3.0

実装方法

AppDataBase.runInTransactionブロック内で更新処理を行うことで実現できます。

ブロック内でsuspend functionを利用する場合は、runInTransactionの代わりにwithTransactionを利用する必要があります。

参考記事

https://stackoverflow.com/questions/48113259/room-database-transaction-rollback

https://stackoverflow.com/questions/63677245/suspend-method-inside-runintransaction-block

 

 


--------------------------
システム開発のご要望・ご相談はこちらから

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です