Фильтр по текущей дате в Castor OQL

Я бегу ява кокон 2 и кастор oql. Я пытаюсь отфильтровать свой запрос oql по сегодняшней дате, но я не могу понять (или найти в Google) синтаксис даты. База данных mySql, но oql отображается с помощью классов Java... поэтому поиск по field_date >= Now() не работает. Есть идеи? Я действительно не выношу ограничений этого сайта, но это то, с чем мне приходится работать.

2 ответа

Прошло много времени с тех пор, как я использовал Cocoon, поэтому я не могу сказать, что у меня действительно отличный ответ для вас. Но так как этот вопрос стагнирует, пара моментов, чтобы предложить;-)

  1. Синтаксис должен иметь значение, только если вы кодируете литеральную строку SQL. У меня сложилось впечатление, что с помощью castor вы можете связать переменные (и позволить OQL выбрать подходящий формат). т.е. "где field_date >=?", myDateVal

  2. Казалось, что CastorTransformer появился только в одной конкретной версии Cocoon, а AFAIK - не в последней. Если у вас есть контроль над версией Cocoon, которую вы используете, вы можете посмотреть на обновление и альтернативы CastorTransformer.

Адаптировано из FAQ по Castor JDO, при условии, что вы сравниваете данные с датой, а не с отметкой времени (см. Ссылку на OQL).

OQLQuery query = db.getOQLQuery("SELECT p FROM Person p "
      +"WHERE lastvisitdate=$2");
query.bind( new Date() ); //new Date() defaults to today.
Другие вопросы по тегам