2017-06-09 1 views
0

Das habe ich versucht, istWie viele zu viele DB in diese Welt löschen

public class AppInfo extends RealmObject { 
    public String packageName; 

    public RealmList<CategoryInfo> categoryList; 
} 

public class CategoryInfo extends RealmObject { 
    public String categoryName; 
} 

Das ist mein DB-Tabelle.

Ich möchte categoryName löschen.

AppInfo result = realm.where(AppInfo.class).equalTo("packageName",info.getPackageName()).findFirst(); 

result.categoryList.remove(category); 

aber der Code kann KategorieName nicht löschen.

Antwort

0

Statt

result.categoryList.remove(category); 

Sie sollten

result.categoryList.where().equalTo("categoryName", category).findAll().deleteAllFromRealm(); 

Mit Realm 3.4.0 tun, können Sie auch tun

public class AppInfo extends RealmObject { 
    public String packageName; 

    public RealmList<CategoryInfo> categoryList; 
} 

public class CategoryInfo extends RealmObject { 
    public String categoryName; 

    @LinkingObjects("categoryList") 
    public final RealmResults<AppInfo> appInfos = null; 
} 

und

realm.where(CategoryInfo.class) 
     .equalTo("appInfos.packageName", packageName) 
     .equalTo("categoryName", category) 
     .findAll() 
     .deleteFromRealm();