在這裏你改變你的應用程序的數據庫version
並重新啓動程序agian,它將工作:
@Database(entities = arrayOf(Site::class), version = 123) abstract class YourAppDatabase : RoomDatabase() {
abstract fun yourDao(): YourDao
}
,你可以也試試這個data class
:
@Entity
data class Site(@PrimaryKey(autoGenerate = true) var id: Long) {
@Ignore constructor() : this(0)
var name: String = "",
var url: String = "",
}
和最後一條指令:您的主鍵id
應該是手動遞增。
希望能爲你工作。 :)
測試以顯示上述答案無效。
data class TestModel(var id: Int = 0) {
constructor() : this(0)
var name: String = "defaultname"
var testData: String = "defaulttestData"
}
val testModel = TestModel(5)
testModel.name = "test"
val testModel2 = TestModel(5)
testModel2.testData = "testdata"
testModel2.name = "test"
info { "Test with name set: $testModel" }
info { "Testdata equals Testdata2 ${testModel.equals(testModel2)}" }
回報測試與名稱設置:TestModel(ID = 5)和TESTDATA等於Testdata2真正
我們可以爲這個數據類創建二級構造嗎? –
你可以嘗試伊曼紐爾的回答https://stackoverflow.com/a/46526911/3005202 –