假设我们有两个对象:
class Server {
...
String location;
List<Status> statusList;
...
}
class Status {
...
int code;
...
}
如何获取具有相同位置的所有服务器的状态列表。例如,如果code == 1
和location == "Beijing"
?
如果我想使用createQuery(Server.class)然后使用.filter(),那么输出不能是状态列表!
答案 0 :(得分:0)
不应该为此工作吗?
List<Server> oops = createQuery(Server.class).find("location","Beijing").find("statusList.code", 1).asList();
答案 1 :(得分:0)
Morphia不支持返回类似的不同类型。它将返回创建查询时指定的类型。您可以通过创建带状态的查询和服务器集合并仅投影“状态”字段来伪造它。您需要禁用验证。