Realm(Java)数据库使用文档(模式Schemas)

Realm(Java)数据库使用文档(目录)

Realm的默认架构只是项目中的所有Realm模型类。但是,您可以更改此行为-例如,您可能希望限制Realm仅包含类的子集。为此,请创建一个自定义RealmModule

// 创建module
@RealmModule(classes = { Person.class, Dog.class })
public class MyModule {
}

// 在RealmConfiguration中将module设置为仅允许该module定义的类。
RealmConfiguration config = new RealmConfiguration.Builder()
  .modules(new MyModule())
  .build();

// 可以将多个module组合成一个模式。
RealmConfiguration config = new RealmConfiguration.Builder()
  .modules(new MyModule(), new MyOtherModule())
  .build();

对于库开发人员来说: 包含Realm的库必须通过RealmModule公开并使用其架构。这样做会阻止为库项目生成默认的RealmModule,这会与App使用的默认RealmModule相冲突。库的RealmModule也是库向应用程序公开其Realm类的方式。

// 库必须创建一个module并设置library = true。 这将阻止创建默认module。
// 可以使用allClasses = true来代替列出库中的所有类。
@RealmModule(library = true, allClasses = true)
public class MyLibraryModule {
}

// 因此,需要图书馆项目明确设置自己的module。
RealmConfiguration libraryConfig = new RealmConfiguration.Builder()
  .name("library.realm")
  .modules(new MyLibraryModule())
  .build();

// 应用程序可以将库RealmModule添加到其自己的架构中。
RealmConfiguration config = new RealmConfiguration.Builder()
  .name("app.realm")
  .modules(Realm.getDefaultModule(), new MyLibraryModule())
  .build();

一个文件中不能有多个RealmModule声明。如果您有两个或多个RealmModule,则必须将声明分成多个文件,每个文件中只有一个声明。

在此处查看有关RealmModules如何在库和应用程序项目之间工作的完整示例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章