领域模型
领域模型必须扩展 RealmObject 基类,它们定义底层数据库的模式。
支持的字段类型有 boolean,byte,short,int,long,float,double,String,Date,byte[],链接到其他 RealmObjects 和 RealmList<T extends RealmModel>。
public class Person extends RealmObject {
    @PrimaryKey //primary key is also implicitly an @Index 
                //it is required for `copyToRealmOrUpdate()` to update the object.
    private long id;
    @Index //index makes queries faster on this field
    @Required //prevents `null` value from being inserted
    private String name; 
    private RealmList<Dog> dogs; //->many relationship to Dog
    private Person spouse; //->one relationship to Person
    @Ignore
    private Calendar birthday; //calendars are not supported but can be ignored
    // getters, setters
}
如果向 RealmObject 添加(或删除)新字段(或者添加新的 RealmObject 类或删除现有类),则需要进行迁移。你可以在 RealmConfiguration.Builder 中设置 deleteIfMigrationNeeded(),也可以定义必要的迁移。添加(或删除)@Required 或 @Index 或 @PrimaryKey 注释时也需要迁移。
必须手动设置关系,它们不是基于主键自动设置的。
从 0.88.0 开始,也可以在 RealmObject 类中使用公共字段而不是私有字段/ getter / setter。
如果该类也用 @RealmClass 注释,也可以实现 RealmModel 而不是扩展 RealmObject。
@RealmClass
public class Person implements RealmModel {
    // ...
}
在这种情况下,像 person.deleteFromRealm() 或 person.addChangeListener() 这样的方法被替换为 RealmObject.deleteFromRealm(person) 和 RealmObject.addChangeListener(person)。
限制是通过 RealmObject,只有 RealmObject 可以扩展,并且不支持 final,volatile 和 transient 字段。
重要的是,只能在事务中修改托管的 RealmObject 类。一个管理 RealmObject 不能在线程之间传递。