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

问题描述 投票:0回答:2

我插入数据后出现问题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的新手。

android kotlin realm
2个回答
0
投票

Spicie课程是什么样的?我看到你正在做insertOrUpdateso我想你正在做399次更新

尝试记录objextspicieId并确保它在迭代中是唯一的


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.