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) |
スポンサーリンク