Тип параметра должен быть классом с аннотацией @Entity или версией коллекции Kotlin

#android #kotlin

#Android #котлин

Вопрос:

Я знаю, что проблема продолжает возникать. Я искал разные решения, но в конце концов у меня все еще та же ошибка с аннотацией @Entity. Проверяет простую базу данных Dao. Я знаю, как решить эту проблему с помощью базы данных SQLiteDatabase. Но я хочу научиться использовать Dao.

 @Entity //(tableName = "employee-table")  data class EmplyeeEntity(  @PrimaryKey(autoGenerate = true)  var id: Int=0,  var name: String="",  @ColumnInfo(name = "email-id")  var email: String="")   @Database(entities=[EmplyeeEntity::class],version=2)  abstract class EmployeeDataBase:RoomDatabase() {  abstract fun employeeDao():EmployeeDao  companion object{  @Volatile  private var INSTANCE:EmployeeDataBase?=null  fun getInstance(context: Context):EmployeeDataBase{  synchronized(this) {  var instance = INSTANCE   if (instance == null) {  instance = Room.databaseBuilder(  context.applicationContext,  EmployeeDataBase::class.java,  "employee_database"  ).fallbackToDestructiveMigration().build()  INSTANCE = instance  }  return instance  }   }  } }    @Dao  interface EmployeeDao {  @Insert(onConflict = OnConflictStrategy.REPLACE)  suspend fun insert(entity:EmplyeeEntity)  @Update  suspend fun update(entity:EmplyeeEntity)  @Delete  suspend fun delete(entity:EmplyeeEntity)  @Query("SELECT * FROM EmplyeeEntity")  fun fetcheAllEmployees():Flowlt;Listlt;EmplyeeEntitygt;gt;  @Query("SELECT * FROM EmplyeeEntity where id=:id")  @JvmSuppressWildcards  fun fetcheAllEmployeesById(id:Int):Flowlt;Listlt;EmplyeeEntitygt;gt;  }   class EmployeeApp:Application() {  val db by lazy {  EmployeeDataBase.getInstance(this)  }  }    dependencies {  def room_version = '2.3.0'  def activityVersion = '1.3.1'  def lifecycle_version = "2.4.0-beta01"  // Room and Lifecycle dependencies  implementation "androidx.room:room-runtime:$room_version"  kapt "androidx.room:room-compiler:$room_version"  //kotlin extensions for coroutine support with room  implementation("androidx.room:room-ktx:$room_version")  //kotlin extension for coroutine support with activities  implementation "androidx.activity:activity-ktx:$activityVersion"  implementation 'androidx.core:core-ktx:1.6.0'  implementation 'androidx.appcompat:appcompat:1.3.1'  implementation 'com.google.android.material:material:1.4.0'  implementation 'androidx.constraintlayout:constraintlayout:2.1.0'  testImplementation 'junit:junit:4. '  androidTestImplementation 'androidx.test.ext:junit:1.1.3'  androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'  }  

Я думаю, что проблема в моих зависимостях…Я обвиняю себя уже несколько дней: P

Комментарии:

1. Если вы недавно обновили версию Kotlin 1.6.0, обновите room ее до 2.4.0-rc01

2. Работает отлично, большое вам спасибо 🙂