0

質問はほとんどそれをすべて言います。

クラスがある場合Class A

public class A {
    ...
    private List<String> keys;
    ...
}

そして、キーのリストの少なくとも1つを持つデータストアからすべてのインスタンスを選択したいのですAが、これよりも良い方法はありますか?

query = pm.newQuery(A.class);
query.setFilter("keys.contains(:key1) || keys.contains(:key2) || keys.contains(:key3)");
List<A> results = (List<A>)query.execute(key1, key2, key3);

これはまだ実装されていないので、私は根本的な提案を受け入れています。

4

2 に答える 2

1

"SELECT FROM" + A.class.getName()+ "WHERE keys.contains(var)&&(var ==:key1 || var ==:key2 || var ==:key3)VARIABLES java.lang.String var 「」

または、少なくともそれは他のデータストアで使用するものです。グーグルがそれを実装したかどうか誰もが推測します。

于 2010-04-07T14:15:17.753 に答える
1

これでgaeに実装されたため、コードは完全に実行されます。ここに別の例があります:

Query query = pm.newQuery(Book.class);
query.setFilter("_AuthorKeys.contains(:key1) || _AuthorKeys.contains(:key2)");
Key key1 = KeyFactory.stringToKey("xxxxxxxxxxx");
Key key2 = KeyFactory.stringToKey("yyyyyyyyyyy");
List<Book> books = (List<Book>) query.execute(key1, key2);

また

Query query = pm.newQuery(Book.class);
query.setFilter("_AuthorKeys.contains(:keys)");
List<Key> keys = new LinkedList();
keys.add(KeyFactory.stringToKey("xxxxxx"));
keys.add(KeyFactory.stringToKey("yyyyyy"));
List<Book> books = (List<Book>) query.execute(keys);
于 2011-07-01T17:37:20.313 に答える