插入数据400行,但查询列表具有1个元素Realm Kotlin

时间:2018-09-11 06:06:49

标签: android kotlin realm

我在代码后面插入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的新用户。

2 个答案:

答案 0 :(得分:0)

Spicie类的外观如何?我看到您在做insertOrUpdate,所以我想您正在执行399次更新

尝试记录objext的{​​{1}},并确保它在整个迭代过程中是唯一的

答案 1 :(得分:0)

我解决了我的问题。因为SpicieObject是Object但不是Class。因为设备的内存看到一个值是相同的内存。因此,领域插入重叠数据。当我尝试将对象更改为类时。这个功能可以做!谢谢