2008-09-18 12 views
1

J'utilise le java cocoon 2 et le castor oql. J'essaie de filtrer ma requête oql par date d'aujourd'hui, mais je n'arrive pas à comprendre (ou trouver dans google) la syntaxe de la date. La base de données est mySql, mais l'oql est mappée par les classes java ... donc faire une recherche sur field_date> = Now() ne fonctionne pas. Des idées? Je ne peux vraiment pas supporter les limites de ce site, mais c'est avec quoi je dois travailler.Filtrer sur la date du jour dans Castor OQL

Répondre

1

Ca fait longtemps que j'ai utilisé Cocoon, donc je ne peux pas dire que j'ai vraiment une bonne réponse pour vous. Mais puisque cette question stagne, quelques points pour suggérer ;-)

  1. Syntaxe ne devrait importe si vous codez la chaîne SQL littérale. J'avais l'impression qu'avec castor vous pouvez lier les variables (et laissez OQL sélectionner le format approprié). c'est-à-dire "where field_date> =?", myDateVal

  2. Le CastorTransformer ne semblait apparaître que brièvement dans une version spécifique de Cocoon, et AFAIK n'est pas le dernier. Si vous avez le contrôle sur la version Cocoon vous utilisez, vous voudrez peut-être regarder la mise à niveau et des solutions de rechange à la CastorTransformer

1

Adapté de la Castor JDO FAQ, en supposant que vous comparez contre une date et non un horodatage (voir OQL reference).

OQLQuery query = db.getOQLQuery("SELECT p FROM Person p " 
     +"WHERE lastvisitdate=$2"); 
query.bind(new Date()); //new Date() defaults to today.