
我可以在领域迁移脚本中使用新主键更改旧主键吗?
解决方法:
对的,这是可能的.
RealmObjectSchema objectSchema = schema.get("MyObject"); objectSchema.addFIEld("newID", long.class) .transform(new RealmObjectSchema.Function() { @OverrIDe public voID apply(DynamicRealmObject obj) { obj.setLong("newID", getNewID(obj)); } }) .removeFIEld("ID") .renameFIEld("newID", "ID") .addPrimaryKey("ID");但是,您无法直接创建该字段
objectSchema.addFIEld("newID", long.class, FIEldAttribute.PRIMARY_KEY)因为数据库中的值初始化为0,这意味着您将违反创建约束.因此,只有在设置值后才能添加主键约束.
在你的情况下,
RealmObjectSchema objectSchema = schema.get("MyObject");objectSchema.addFIEld("newID", long.class) .transform(new RealmObjectSchema.Function() { @OverrIDe public voID apply(DynamicRealmObject obj) { obj.setLong("newID", getNewID(obj)); } }) .removePrimaryKey() .addPrimaryKey("newID"); 总结 以上是内存溢出为你收集整理的Android:在领域迁移中更改旧主键全部内容,希望文章能够帮你解决Android:在领域迁移中更改旧主键所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)