Roomでテーブル(エンティティ)などの設定をしていた時にエラーが…。

【エラーメッセージ】
Entity class must be annotated with @Entity
【翻訳】
エンティティクラスには@Entityのアノテーションを付ける必要があります

@Entity」を付ける必要があると書いてあるんですが、
エンティティを設定しているファイルには、
しっかり「@Entity」を書いており
テーブルの設定箇所にもエラーになりそうなところはありません。

(User.ktなどのエンティティを設定するファイルや、
 UserDao.ktなどのDAOを設定するファイルにはエラーになりそうなところはありませんでした)


……???

エラーの箇所は、別のところでした

「@Entity」が不足していそうな部分を探してもうまくいかなかったのですが、
こちらを参考にしてみると…
error: Entity class must be annotated with @Entity(Stack Overflow:英語)

どうやら、
「エンティティ」を設定する箇所に、
「エンティティDao」を設定している可能性があるようです。

探してみると…私の場合は、こんなところを設定ミスしていました!

@Database(entities = arrayOf((エンティティ名1)Dao::class,(エンティティ名2)::class), version = 1)

(UsersDatabase.ktなどの、データベースに関するファイルを設定するファイル内です)


@Databaseには、エンティティが複数ある場合、
エンティティの数だけここに書き加えていきますが、
その一つが「エンティティ」ではなく「DAO」になっていました…。


場合によっては、エラーになる箇所は他の場所かもしれませんが、
とりあえず今回はここを以下のように修正したところ、直りました!

@Database(entities = arrayOf((エンティティ名1)::class,(エンティティ名2)::class), version = 1)
スポンサーリンク