#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. Работает отлично, большое вам спасибо 🙂