我在代码后面插入400行数据时遇到问题。
fun saveWith(objext: SpicieObject?) {
var realm: Realm? = null
try {
realm = Realm.getDefaultInstance()
realm.executeTransaction {
val spicie = realm.createObject(Spicie::class.java, objext?.spicieId)
spicie.spicie = objext?.spicie
spicie.breedType = objext?.breedType
realm.insertOrUpdate(spicie)
}
}
finally {
if (realm != null) { realm.close() }
}
}
但是当我查询该数据库中的所有数据时,请遵循我的代码。
fun getList(): RealmResults<Spicie>? {
try {
val realm = Realm.getDefaultInstance()
val objects = realm.where(Spicie::class.java).findAll()
return objects
}
catch (exception: RealmException) {
exception.printStackTrace()
println("Exception in database")
}
return null
}
此函数将返回数组的大小为1。在座位或查询中,我不确定该函数在哪里失败。请指导我,因为我是android和kotlin的新用户。
答案 0 :(得分:0)
Spicie
类的外观如何?我看到您在做insertOrUpdate
,所以我想您正在执行399次更新
尝试记录objext
的{{1}},并确保它在整个迭代过程中是唯一的
答案 1 :(得分:0)
我解决了我的问题。因为SpicieObject是Object但不是Class。因为设备的内存看到一个值是相同的内存。因此,领域插入重叠数据。当我尝试将对象更改为类时。这个功能可以做!谢谢