Roomを使って、データベースのファイルを準備し、
Entityを複数準備しようとしたところ、
@Databaseのファイル内にどう書けばいいのかちょっと迷ったので、メモしておきますー。
基本の、Databaseのファイルの書き方
こちらの公式サイトを参考に、Databaseの設定をしていきます。
@Database(entities = arrayOf(User::class), version = 1) abstract class AppDatabase : RoomDatabase() { abstract fun userDao(): UserDao } |
上記のコードでいうと、
User:Entityの名前
AppDatabase:データベースのclassの名前
UserDao:Entityごとに準備するDAO
という感じになっています。
(まだRoom触りたてなので、ちょっと言葉遣いとか間違ってたらごめんなさい…)
複数のEntityがある時、Databaseのファイルにどう書けばいい?
ここまではいいんですが、Entityが複数ある場合にどう書くのかがスッとわからず、ちょっと苦労しました。
で、うまくいった書き方がこちらです。
Database(entities = arrayOf( User::class, Entity02::class, Entity03::class, Entity04::class), version = 1) abstract class AppDatabase : RoomDatabase() { abstract fun userDao(): UserDao abstract fun entity02Dao(): Entity02Dao abstract fun entity03Dao(): Entity03Dao abstract fun entity04Dao(): Entity04Dao } |
こんな感じで、
EntityはarrayOFにする形で書き、
Daoの方もここに書き連ねる事で、
何個も、たくさんEntityを増やしてもうまく動きましたー。
スポンサーリンク