日期查询无法在Google App Engine Java上运行

时间:2011-04-04 08:52:37

标签: java google-app-engine google-cloud-datastore jdo

      Date today = new Date();        
      Query query5 = pm.newQuery(TMS.class);
      query5.setFilter("start_date < date");
      query5.setFilter("end_date > date");
      query5.setFilter("emp_Id == id");
      query5.declareParameters("java.util.Date date,String id");
      List<TMS> result1 = (List<TMS>)query5.execute(today,session.getAttribute("emp_Id").toString());

查询给出了所有结果,条件不起作用。它也没有给出任何错误。任何人都可以给出解决方案吗?

2 个答案:

答案 0 :(得分:1)

我不确定,但也许是因为查询有一些限制。

在GAE上,您不能在多个属性上使用不等式过滤器。您在“start_date”属性上使用运算符LESS_THAN,在“end_date”属性上使用运算符GREATER_THAN。也许这就是问题。

检查出来:http://code.google.com/appengine/docs/java/datastore/queries.html#Restrictions_on_Queries

答案 1 :(得分:0)

您正在查询多个属性。您需要通过在datastore.indexes文件中定义索引来创建索引。单个属性查询仅在默认情况下启用。