Android Realm : Primary key constraint broken. 值已存在:0

标签 android primary-key zero realm

我现在经常使用 Realm。我很喜欢!但真正烦人的一件事是,在使用 copyToRealmOrUpdate 时,我无法将主键设置为零。我从服务器取回我的 ID。第一个 ID 为零。所以我的应用程序立即崩溃并显示:Primary key constraint broken。值已存在:0。如果这是一个不同的数字,它就可以正常工作,但它会在零时崩溃。这是错误还是有人可以帮助我?

谢谢!

最佳答案

这里是来自 Realm 的 Christian。 0 有点问题,因为它也是整数的默认值。这意味着如果您确实将 0 作为实际值,则使用 Realm.createObject() 等 API 时会遇到问题。也就是说,我们刚刚使用 Realm.copyToRealmOrUpdate() 修复了一个错误,该错误涵盖了您的确切用例:https://github.com/realm/realm-java/pull/995

它已经合并到 master 中,因此应该是我们的 -SNAPSHOT 版本的一部分,但尚未正确发布。您可以尝试使用:

 repositories {
        jcenter()
        maven {
            url 'http://oss.jfrog.org/artifactory/oss-snapshot-local'
        }
    }

    compile 'io.realm:realm-android:0.80.1-SNAPSHOT'

关于Android Realm : Primary key constraint broken. 值已存在:0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29607714/

相关文章:

MySQL 唯一 id 或组合 id

database-design - 为主键使用特定于项目的前缀和自动编号?

python - 检查数字零时的多个条件声明 - python

python - 通过python中出现零来选择列表中的元素

java - 为什么我的构造函数参数没有传递?

android - 在android中以编程方式获取设备快照

java - Java中是否有等效的TweenMax

javascript - 具有两个主键的 JavaScript 对象的正确数据模型

android - Firebase Android 前台/后台问题

android - Picasso v/s Imageloader v/s Fresco vs Glide vs Coil