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 List 包含特定 dispatchId 代码的部门。我的 Java servlet 代码是:

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 数据存储查看器(在 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 回答