Android Realm迁移问题→java.lang.IllegalArgumentException:创建对象后无法更改主键字段'foo'

时间:2019-01-08 05:25:30

标签: android realm realm-migration

在Android上进行Realm迁移期间,我试图将现有的String字段大写,但由于该字段是主键,因此出现以下错误。

java.lang.IllegalArgumentException: Primary key field 'foo' cannot be changed after object was created.

以下是我现有的代码。

schema.get("FooEntity")
        .transform(entity -> {
                final String fieldValue = entity.getString("foo");
                entity.setString("foo", fieldValue.toUpperCase(Locale.US));
        });

我要解决的迁移问题的方法是:首先删除主键;然后删除主键。然后转换字段值;最后重新添加主键。

schema.get("FooEntity")
    .removePrimaryKey()
    .transform(entity -> {
            final String fieldValue = entity.getString("foo");
            entity.setString("foo", fieldValue.toUpperCase(Locale.US));
    })
    .addPrimaryKey("foo");

这似乎按预期工作。

此方法是否有任何问题?

0 个答案:

没有答案