Realm学习笔记

    xiaoxiao2021-04-18  70

    Realm 用法学习地址

    1 Realm不支持内部类

    Realm和GSON可以无缝的配合使用。

    3  Realm库升级的方法:

    创建迁移类

    // 迁移类示例public class MyMigration implements RealmMigration{ @Override public void migrate(DynamicRealm realm, long oldVersion, long newVersion) { // DynamicRealm 暴露了一个可编辑的schema RealmSchema schema = realm.getSchema(); // 迁移到版本 1 : 添加一个新的类 // 示例: // public Person extends RealmObject { // private String name; // private int age; // // getters and setters left out for brevity // } if (oldVersion == 0) { schema.create("Person") .addField("name", String.class) .addField("age", int.class); oldVersion++; } // 迁移到版本 2 :添加一个primary key + 对象引用 // 示例: // public Person extends RealmObject { // private String name; // @PrimaryKey // private int age; // private Dog favoriteDog; // private RealmList<Dog> dogs; // // getters and setters left out for brevity // } if (oldVersion == 1) { schema.get("Person") .addField("id", long.class, FieldAttribute.PRIMARY_KEY) .addRealmObjectField("favoriteDog", schema.get("Dog")) .addRealmListField("dogs", schema.get("Dog")); oldVersion++; } }}

    使用Builder.migration升级数据库

    将版本号改为2,当Realm发现新旧版本号不一致时,会自动使用该迁移类完成迁移操作。

    RealmConfiguration config = new RealmConfiguration.Builder() .schemaVersion(2) // 在schema改变后,必须进行升级 .migration(new MyMigration()) // 开始迁移 .build()

    4 不能直接使用查询出来的对象类

    我们得到了一个符合查询条件的对象列表的引用,但是如果我们直接操作,对象将会是原始的对象。所以,还是复制一份吧。

    ArrayList array = realm. copyFromRealm(result2);

    转载请注明原文地址: https://ju.6miu.com/read-675502.html

    最新回复(0)