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如何在庫和應用程序項目之間工作的完整示例

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