Фильтр по текущей дате в Castor OQL
Я бегу ява кокон 2 и кастор oql. Я пытаюсь отфильтровать свой запрос oql по сегодняшней дате, но я не могу понять (или найти в Google) синтаксис даты. База данных mySql, но oql отображается с помощью классов Java... поэтому поиск по field_date >= Now() не работает. Есть идеи? Я действительно не выношу ограничений этого сайта, но это то, с чем мне приходится работать.
2 ответа
Прошло много времени с тех пор, как я использовал Cocoon, поэтому я не могу сказать, что у меня действительно отличный ответ для вас. Но так как этот вопрос стагнирует, пара моментов, чтобы предложить;-)
Синтаксис должен иметь значение, только если вы кодируете литеральную строку SQL. У меня сложилось впечатление, что с помощью castor вы можете связать переменные (и позволить OQL выбрать подходящий формат). т.е. "где field_date >=?", myDateVal
Казалось, что 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.