私はクエリを実行する必要があるこのエンティティを持っています:
@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
フィールド) を持つエンティティを取得するクエリを実行することです。