无法在GAE JDO中查询List <string>子字段</string>

时间:2012-04-15 17:34:44

标签: google-app-engine google-cloud-datastore jdoql

我见过很多例子,但似乎没有一个例子适用于我的问题。我在GAE(Java)中使用JDO。我没有发现任何错误消息。当我知道应该存在或者结果匹配具有dispatchId的空List的对象时,我只是没有得到结果。任何帮助将不胜感激!

这是我的相关课程代码:

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']

再次感谢任何输入...... John

1 个答案:

答案 0 :(得分:3)

你好,你还在寻找答案吗?

以下是解决方案:

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

在这里你需要一个引号来包含参数。