I am trying to find a away to SUM the relationship field, but always throw an exception~
So it`s possible to sum a relationship filed by using realm database?
if u knows where i write wrong, please tell me, thanks a lot :)
Assuming I have the following dataset:
public class Service extends RealmObject {
private String id;
private RealmList<Service> extras;
private boolean selected;
// getters and setters
}
public class ServiceExtra extends RealmObject {
private String id;
private float price;
private boolean selected;
// getters and setters
}
and then, i guess the query code like this
Realm.getDefaultInstance()
.where(Service.class)
.equalTo("selected",true)
.equalTo("extras.selected",true)
.sum("extras.price");
but always throw
java.lang.IllegalArgumentException: Field does not exist: extras.price
at io.realm.RealmObjectSchema.getAndCheckFieldIndex(RealmObjectSchema.java:756)
at io.realm.RealmQuery.sum(RealmQuery.java:1592)
UPDATE
Realm realm = Realm.getDefaultInstance();
Service service = realm.where(Service.class).equalTo("selected",true).findFirst();
int totalPrice = service.extras.where().equalTo("selected",true).sum("price");
or
Realm realm = Realm.getDefaultInstance();
RealmResult<Service> services = realm.where(Service.class)
.equalTo("selected",true).finAll();
int totalPrice;
for(Service service : services){
totalPrice += service.extras.where()
.equalTo("selected",true).sum("price");
}