Запрос даты не работает в Google App Engine Java - PullRequest
0 голосов
/ 04 апреля 2011
      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 ]

1 голос
/ 04 апреля 2011

Не знаю точно, но, возможно, это происходит из-за некоторых ограничений на запросы.

В GAE нельзя использовать фильтры неравенства для нескольких свойств. Вы используете оператор LESS_THAN для свойства "start_date" и оператор GREATER_THAN для свойства "end_date". Может быть, в этом проблема.

Проверьте это: http://code.google.com/appengine/docs/java/datastore/queries.html#Restrictions_on_Queries

0 голосов
/ 15 октября 2013

Вы запрашиваете несколько свойств. Вам нужно будет создать индекс, определив его в файле datastore.indexes. Запросы для одного свойства включены только по умолчанию.

...