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());
查询给出了所有结果,条件不起作用。它也没有给出任何错误。任何人都可以给出解决方案吗?
答案 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文件中定义索引来创建索引。单个属性查询仅在默认情况下启用。