Realm学习笔记

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值