0

私はクエリを実行する必要があるこのエンティティを持っています:

@Entity
public class Resource implements Serializable {   
    @Id    
    private Long id;
    private List<String> key;
}

クエリは次のとおりです。

List<String> keyPath = key.getFullPath();
Resource result = ofy().load().type(Resource.class).filter("key =", keyPath).first().get();

次のエラーが表示されます。

java.lang.IllegalArgumentException: A collection of values is not allowed.
    at com.google.appengine.api.datastore.DataTypeUtils.checkSupportedValue(DataTypeUtils.java:140)
    at com.google.appengine.api.datastore.Query$FilterPredicate.<init>(Query.java:867)

質問:

  • List のようなコレクションをクエリ値として使用してクエリを実行することは可能ですか?
  • Objectify クエリまたはネイティブ データストア クエリで可能ですか?
  • そうでない場合、この種のクエリを実行するアプローチは何ですか

アイデアは、クエリ値Resourceと同じ文字列リスト (keyフィールド) を持つエンティティを取得するクエリを実行することです。

4

2 に答える 2

1

INオペレーターで試してみましたか?

Resource result = ofy().load().type(Resource.class).filter("key IN ", keyPath).first().get();
于 2012-10-13T08:15:03.610 に答える