Android 领域列表
RealmList with Android
Items upon inserting
Items upon retrieving
事情是这样的:
我有一个扩展 RealmObject 的对象产品。
在 Product 对象内部,有一个属性:RealmList。 Bundle 还扩展了 RealmObject。
在Bundle Object中,有一个属性:RealmList。 ProductBundle 扩展了 RealmObject。
现在所有这些列表在应该被插入时既不为空也不为空。
插入后,如果我向 Realm 查询产品列表,我将收到一个包含 RealmList 列表的列表。但是,在每个 Bundle 项中,RealmList< ProductBundle> productBundles 始终为空。
class Product extends RealmObject{
RealmList<Bundle> bundles= new RealmList<Bundle>();
boolean isLocallyAddedToCart;
}
class Bundle extends RealmObject{
RealmList<ProductBundle> productsBundles = new RealmList<ProductBundle>();
}
class ProductBundle extends RealmObject{
String title;
}
对此有什么想法吗?
查询:
RealmResults<Product> cartItem = realm.where(Product.class).equalTo("isLocallyAddedToCart", true).findAll();
正在插入:
public void insertAddToCart(@NonNull ArrayList<Product> items) {
try {
Realm realm = getRealmInstance();
realm.beginTransaction();
realm.insertOrUpdate(items);
realm.commitTransaction();
realm.close();
} catch (Exception ex) {
ex.getStackTrace();
}
}
处理对象:
RealmList<BundleProductOption> bundleProductOptions = new RealmList<>();
private SparseArray<List<ProductBundle>> optionsFinalSelection = new SparseArray<>();
BundleProductOption bundleProduct = new BundleProductOption();
bundleProduct.setDefaultTitle(bundleProductOption.getDefaultTitle());
bundleProduct.setOptionId(bundleProductOption.getOptionId());
bundleProduct.setParentId(bundleProductOption.getParentId());
bundleProduct.setRequired(bundleProductOption.getRequired());
bundleProduct.setType(bundleProductOption.getType());
RealmList<ProductBundle> productBundles = new RealmList<>();
productBundles.addAll(optionsFinalSelection.get(i));
bundleProduct.setProductsBundle(productBundles);
product.setSelectedOptions(bundleProductOptions);
您必须在每个模型中以 ID 作为主键来管理您的插入。
当你插入或更新时,你必须使用主键来保存数据的所有状态,然后你可以不使用它们,但领域需要它们来安排插入或更新方法。
让我了解你的问题。
Items upon inserting
Items upon retrieving
事情是这样的:
我有一个扩展 RealmObject 的对象产品。 在 Product 对象内部,有一个属性:RealmList。 Bundle 还扩展了 RealmObject。
在Bundle Object中,有一个属性:RealmList。 ProductBundle 扩展了 RealmObject。
现在所有这些列表在应该被插入时既不为空也不为空。
插入后,如果我向 Realm 查询产品列表,我将收到一个包含 RealmList 列表的列表。但是,在每个 Bundle 项中,RealmList< ProductBundle> productBundles 始终为空。
class Product extends RealmObject{
RealmList<Bundle> bundles= new RealmList<Bundle>();
boolean isLocallyAddedToCart;
}
class Bundle extends RealmObject{
RealmList<ProductBundle> productsBundles = new RealmList<ProductBundle>();
}
class ProductBundle extends RealmObject{
String title;
}
对此有什么想法吗?
查询:
RealmResults<Product> cartItem = realm.where(Product.class).equalTo("isLocallyAddedToCart", true).findAll();
正在插入:
public void insertAddToCart(@NonNull ArrayList<Product> items) {
try {
Realm realm = getRealmInstance();
realm.beginTransaction();
realm.insertOrUpdate(items);
realm.commitTransaction();
realm.close();
} catch (Exception ex) {
ex.getStackTrace();
}
}
处理对象:
RealmList<BundleProductOption> bundleProductOptions = new RealmList<>();
private SparseArray<List<ProductBundle>> optionsFinalSelection = new SparseArray<>();
BundleProductOption bundleProduct = new BundleProductOption();
bundleProduct.setDefaultTitle(bundleProductOption.getDefaultTitle());
bundleProduct.setOptionId(bundleProductOption.getOptionId());
bundleProduct.setParentId(bundleProductOption.getParentId());
bundleProduct.setRequired(bundleProductOption.getRequired());
bundleProduct.setType(bundleProductOption.getType());
RealmList<ProductBundle> productBundles = new RealmList<>();
productBundles.addAll(optionsFinalSelection.get(i));
bundleProduct.setProductsBundle(productBundles);
product.setSelectedOptions(bundleProductOptions);
您必须在每个模型中以 ID 作为主键来管理您的插入。 当你插入或更新时,你必须使用主键来保存数据的所有状态,然后你可以不使用它们,但领域需要它们来安排插入或更新方法。
让我了解你的问题。