Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 领域:如何在一对多关系中仅查询父亲的对象_Java_Android_Realm - Fatal编程技术网

Java 领域:如何在一对多关系中仅查询父亲的对象

Java 领域:如何在一对多关系中仅查询父亲的对象,java,android,realm,Java,Android,Realm,我有以下问题: Father包含一个RealmList(其中Kid是另一个RealmObject) 我想通过以下方式查询属于父亲的所有孩子的列表,而不必查询父亲本身: Realm.getDefaultInstance().where(Kid.class).equalTo("fatherId", id); 但我很确定这是不可能的,因为Kid与Father没有任何关系 我是否必须查询父对象,然后调用getKids()方法 如果你想知道为什么我不是简单地查询父亲:我有一个通用的查询方法,查询给它的任

我有以下问题:

Father
包含一个
RealmList
(其中
Kid
是另一个RealmObject)

我想通过以下方式查询属于
父亲
的所有
孩子
的列表,而不必查询
父亲
本身:

Realm.getDefaultInstance().where(Kid.class).equalTo("fatherId", id);
但我很确定这是不可能的,因为
Kid
Father
没有任何关系

我是否必须查询父对象,然后调用
getKids()
方法

如果你想知道为什么我不是简单地查询父亲:我有一个通用的查询方法,查询给它的任何类:

public <T extends RealmObject> List<T> getForFather(Class<T> clazz, String fatherId)
公共列表getForFather(类clazz,字符串fatherId)
查询的大多数类都属于父类,我希望避免if-else语句。我还希望避免多个方法做同一件事,只使用另一个类。上述通用方法可行,但前提是,如果有一种方法可以查询您案例中特定父亲的孩子, 您必须使用为数据库设计ER的传统方法

就是, 不要在父对象中使用
RealmList
,而是在父对象中创建一个
primaryKey
,并在子对象中引用该主键
fatherPrimaryKey

然后您可以简单地查询

RealmResults<Kid> result = realm.where(Kid.class).equals("fatherPrimaryKey", "some_key").findAll();
RealmResults result=realm.where(Kid.class).equals(“父主密钥”、“某个密钥”).findAll();
在kid对象中存储数据时,请确保将父亲主键的正确值作为参考传递给孩子。

对于您的情况, 您必须使用为数据库设计ER的传统方法

就是, 不要在父对象中使用
RealmList
,而是在父对象中创建一个
primaryKey
,并在子对象中引用该主键
fatherPrimaryKey

然后您可以简单地查询

RealmResults<Kid> result = realm.where(Kid.class).equals("fatherPrimaryKey", "some_key").findAll();
RealmResults result=realm.where(Kid.class).equals(“父主密钥”、“某个密钥”).findAll();

在kid对象中存储数据时,请确保将父亲主键的正确值作为参考传递给孩子。

这实际上太麻烦了,无法跟踪。我想我只需要查询用户并调用必要的getter。但是谢谢你的回答。:)另一方面:有没有一种方法可以使用“中间”过滤器过滤RealmList?这实际上太麻烦了,无法跟踪。我想我只需要查询用户并调用必要的getter。但是谢谢你的回答。:)旁注:有没有一种方法可以使用“中间”过滤器过滤RealmList?这只是一个示例,我确实创建了局部变量,但感谢提示。这只是一个示例,我确实创建了局部变量,但感谢提示。