2017-05-06 8 views
2

レルム内の既存のオブジェクトをすべて取得する方法はありますか?Androidのすべてのレルムオブジェクトを取得

約1000個のオブジェクト(テーブル)があり、各オブジェクトには10​​000以上のアイテムがあります。 1時間ごとにアイテムの有効期限が切れます。

// Class[] clazzez = realm.getSchema(); 

Class[] clazzez = new Class[] { // How to get all classes dynamically? 
    Demo.class, AnotherDemo.class, SomeOtherDemo.class 
}; 


// To delete expired items 
for(Class clazz: clazzez) { 
    realm.where(clazz) 
      .greaterThan("maxAge", new Date().getTime()) 
      .findAll() 
      .deleteAllFromRealm(); 
} 

すべてのクラスを追跡するのは非常に困難です。どのようにすべてのクラスを動的に取得するのですか?

答えて

3

realmConfiguration.getRealmObjectClasses();(0.88.0+)。

RealmConfiguration realmConfiguration = new RealmConfiguration.Builder()...build(); 
// ... 
Set<Class<? extends RealmModel>> schemaClasses = realmConfiguration.getRealmObjectClasses(); // <--- 

// To delete expired items 
for(Class clazz: schemaClasses) { 
    realm.where(clazz) 
      .greaterThan("maxAge", new Date().getTime()) // <-- assumes existence of "maxAge" field 
      .findAll() 
      .deleteAllFromRealm(); 
} 
関連する問題