0

多くの例を見てきましたが、私の問題ではうまくいかないようです。GAE (Java) で JDO を使用しています。エラーメッセージが表示されません。結果が存在するはずであることがわかっている場合、または結果がdispatchIdの空のリストを持つオブジェクトと一致する場合に、結果が得られません。どんな助けでも大歓迎です!

関連するクラスコードは次のとおりです。

public class Department {

  @PrimaryKey
  @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
  private Long id;

...  

  // a list of codes that a department might be identified by
  @Persistent
  private List<String> dispatchId; 

}

dispatchId リストに特定の dispatchId コードが含まれている部門を見つけようとしています。私のJavaサーブレットコードは次のとおりです。

String dispatchId = "1353000"; // may contain letters and/or numbers
Query q = pm.newQuery(Department.class, ":dispatchId.contains(dispatchId)");
@SuppressWarnings("unchecked")
List<Department> depts = (List<Department>) q.execute(dispatchId);

GAE Datastore ビューアー (GAE でライブ) では、私のテスト部門の dispatchId フィールドは次のようになります (これが役立つ場合)。

[u'1353000'、u'0566940'、u'0566936'、u'1368496']

ご意見ありがとうございます... ジョン

4

1 に答える 1

3

こんにちは、あなたはまだ答えを探していましたか?

解決策は次のとおりです。

String dispatchId = "someId";
Query query = pm.newQuery(Department.class);
query.setFilter("dispatchId == '"+ dispatchId + "'");
List<Department> depts = (List<Department>) query.execute();

ここでは、パラメーターを囲むために一重引用符が必要です。

于 2012-12-08T23:59:24.100 に答える