Realm 用法学习地址
1 Realm不支持内部类
2 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);