我想在当前 pb 中添加值、日期和详细信息。我在 pbInfo 的数据库中收到错误“冲突声明”。我应该如何修复此错误?
@Entity(tableName = "pb_table")
data class Pb(@PrimaryKey
val pb: String)
@Entity
data class PbInfo(@PrimaryKey
var value: Double,
var date: Int,
var details: String)
@Dao
interface PbInfoDao {
@Insert
fun update(vararg pbInfo: PbInfo): LongArray
INSTANCE?.let { database ->
scope.launch {
populateDatabase(database.pbDao(), database.pbInfo())
}
}
}
suspend fun populateDatabase(pbDao: PbDao, pbInfoDao: PbInfoDao) {
pbDao.deleteAll()
var pb = Pb("Squat")
pbDao.insert(pb)
var pbInfo = PbInfo(122.5, 28, "I was feeling on top form today!")
最佳答案
首先,你在一个类中有两个实体(可能是冲突的)
因此,为单独的 Entity
添加单独的类。
然后,在您的 RoomDatabase 抽象类中,像这样添加两个实体类(同时创建单独的 Dao
接口(interface)类):
@Database(entities = [(Pb::class), (Pbinfo::class)] ,version = 2)
abstract class YourRoomDatabaseClass: RoomDatabase(){
...
abstract fun pbDao() : PbDao
abstract fun pbinfoDao(): PbinfoDao
...
}
这应该可以解决实体类的冲突。我有一个包含两个实体的数据库,并且运行没有任何问题。 (请注意我,因为我不知道 Kotlin 语法)
关于android - 房间 : Conflicting Declarations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57445956/