我已经绘制了以下表格,这里保持简单......
Product
{
String Id;
String Name;
}
Form
{
String Id;
String Firstname;
String Surname;
Journey Journey;
RealmList<FormProduct> Products;
}
Journey
{
String Id;
String Name;
}
FormProduct
{
String Id;
Product Product;
Form Form;
int Quantity;
}
如您所见,FormProduct是Form和Product之间的连接表。我遇到的问题是,当我从领域中检索表单时,它不会为我填充产品,Journey链接确实可以正常工作,但这是一个简单的连接。我知道FormProducts肯定是保存的,因为如果我进行查询,例如
RealmResults<FormProducts> formProducts = realm.where(FormProducts.class).equalTo("Form.Id", formId[0]).findAll();
它带回了我期待的数据。这是检索FormProducts的唯一方法,还是链接自动加载(lazyload?)对我来说?
我正在使用版本'io.realm:realm-android:0.82.1'。必须说我真的很喜欢领域,它的方式比我试过的任何ORM更容易,更快。这是我到目前为止遇到的唯一障碍,这可能是我做错了!感谢任何帮助。
修改
保存表单产品的代码
Form realmForm = realm.copyToRealmOrUpdate(params[0]);
for (Product rp : realmProducts) {
FormProducts formProducts = new FormProducts();
formProducts.setId(UUID.randomUUID().toString());
formProducts.setForm(realmForm);
formProducts.setProduct(rp);
}
realm.copyToRealm(formProducts);
}
检索表单的代码
Form form = realm.where(Form.class).equalTo("Id", formId).findFirst();
以上代码不会自动检索产品。我必须手动拨打
RealmResults<FormProducts> formProducts = realm.where(FormProducts.class).equalTo("Form.Id", formId).findAll();