在Castor OQL中过滤当前日期

时间:2020-03-06 14:23:52  来源:igfitidea点击:

我正在运行Java茧2和蓖麻oql。我正在尝试通过今天的日期过滤我的oql查询,但是我似乎无法弄清楚(或者在google中找到)日期的语法。数据库是mySql,但是oql由java类映射...因此在field_date> = Now()上进行搜索不起作用。有任何想法吗?我实在受不了这个站点的限制,但这是我必须与之合作的地方。

解决方案

自从我使用Cocoon已经有一段时间了,所以我不能说我真的为我们提供了一个很好的答案。但是由于这个问题一直停滞不前,因此有几点建议;-)

  • 语法仅在编码文字SQL字符串时才重要。我的印象是,使用castor可以绑定变量(并让OQL选择适当的格式)。即" where field_date> =?",myDateVal
  • CastorTransformer似乎只在Cocoon的一个特定版本中出现过,而AFAIK在最新版本中未出现过。如果我们可以控制正在运行的Cocoon版本,则可能需要查看CastorTransformer的升级和替代方法

改编自Castor JDO常见问题解答,假定我们要与日期而不是时间戳进行比较(请参阅OQL参考)。

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