Realm学习笔记

来源:互联网 发布:齐鲁软件杯 编辑:程序博客网 时间:2024/06/07 09:34

Realm 用法学习地址

1 Realm不支持内部类


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


3  Realm库升级的方法:

  1. 创建迁移类

    1. // 迁移类示例
    2. public class MyMigration implements RealmMigration{
    3. @Override
    4. public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
    5. // DynamicRealm 暴露了一个可编辑的schema
    6. RealmSchema schema = realm.getSchema();
    7. // 迁移到版本 1 : 添加一个新的类
    8. // 示例:
    9. // public Person extends RealmObject {
    10. // private String name;
    11. // private int age;
    12. // // getters and setters left out for brevity
    13. // }
    14. if (oldVersion == 0) {
    15. schema.create("Person")
    16. .addField("name", String.class)
    17. .addField("age", int.class);
    18. oldVersion++;
    19. }
    20. // 迁移到版本 2 :添加一个primary key + 对象引用
    21. // 示例:
    22. // public Person extends RealmObject {
    23. // private String name;
    24. // @PrimaryKey
    25. // private int age;
    26. // private Dog favoriteDog;
    27. // private RealmList<Dog> dogs;
    28. // // getters and setters left out for brevity
    29. // }
    30. if (oldVersion == 1) {
    31. schema.get("Person")
    32. .addField("id", long.class, FieldAttribute.PRIMARY_KEY)
    33. .addRealmObjectField("favoriteDog", schema.get("Dog"))
    34. .addRealmListField("dogs", schema.get("Dog"));
    35. oldVersion++;
    36. }
    37. }
    38. }
  2. 使用Builder.migration升级数据库

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

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

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

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

  1. ArrayList array = realm. copyFromRealm(result2);

0 0
原创粉丝点击