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」をマップではなくリストとして格納する場合、リスト値の 1 つに「someName」として objName が含まれるように、Abc のオブジェクトを照会できますか? これには助けが必要です。ありがとう

4

1 に答える 1

2

次のようにクエリできるはずです。

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

マップキーは、エンティティのプロパティのマップに単純に折りたたまれ、衝突を避けるために、区切り文字としてドットを使用し、プレフィックスとしてマップフィールドの名前( "objs")を使用します。

于 2011-10-27T15:28:08.740 に答える