私は App Engine (Java/JDO) を使用しており、リストを使用してクエリを実行しようとしています。
だから私は次のクラスを持っています:
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
public class MyEntity
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
Key key;
@Persistent
List<String> tags = new ArrayList<String>();
@Persistent
String otherVar;
}
次の JDO-QL が機能します。
( tags.contains('a') || tags.contains('b') || tags.contains('c') || tags.contains('d') ) && otherVar > 'a' && otherVar < 'z'
これは、タグに 1 つ以上の指定された値を持つ 1 つ以上の文字列があり、otherVar の不等式検索と一緒に、すべての結果を返すようです。
ただし、以下は機能しません。
(tags.contains('a') || tags.contains('_a')) && (tags.contains('b') || tags.contains('_b')) && otherVar > 'a' && otherVar < 'z'
この場合、少なくとも 1 つの a (a または _a のいずれか) と 1 つの b (b または _b のいずれか) が存在するすべてのヒットが、以前の不等式検索と一緒に必要です。
しかし、問題は、a はあるが b がないという結果が返されることです。これは、私が望んでいるものではありません。
明らかな何かを見逃しているか、コーディング エラーを行っているか、または appengine でこれらのクエリを作成する方法に制限がある可能性があるため、ヒントやヘルプは大歓迎です。
よろしくクラス