4

请考虑以下示例

@Entity
public class Abc {
    @Id
    private Long id;

    @Unindexed
    private String name;

    @Embedded
    private Map<String, Xyz> objs;
}

public class Xyz {
    private String objName;
    private String objStatus;
}

现在我想要 Abc 的对象,这objs.get("someKey").getObjName().equals("someName")是真的。

如何在 Objectify 中进行此查询?另外,如果我将“objs”存储为列表而不是映射,我可以查询 Abc 的对象,使得列表值之一的 objName 为“someName”吗?在这方面需要帮助。谢谢

4

1 回答 1

2

您应该能够像这样查询:

Objectify ofy = factory.begin
ofy.query(Abc.class).filter("objs.someKey.objName=", "someName")

映射键被简单地折叠到实体的属性映射中,使用点作为分隔符,使用映射字段的名称(“objs”)作为前缀以避免冲突。

于 2011-10-27T15:28:08.740 回答