1

我正在运行 java cocoon 2 和 castor oql。我正在尝试按今天的日期过滤我的 oql 查询,但我似乎无法弄清楚(或在谷歌中找到)日期的语法。数据库是 mySql,但是 oql 是由 java 类映射的......所以在 field_date >= Now() 上进行搜索不起作用。有任何想法吗?我真的无法忍受这个网站的局限性,但这是我必须使用的。

4

2 回答 2

1

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

  1. 仅当您对文字 SQL 字符串进行编码时,语法才有意义。我的印象是使用 castor 可以绑定变量(并让 OQL 选择适当的格式)。即“哪里 field_date >= ?”,myDateVal

  2. CastorTransformer 似乎只在一个特定版本的 Cocoon 中短暂出现,而 AFAIK 不是最新版本。如果您可以控制正在运行的 Cocoon 版本,则可能需要查看 CastorTransformer 的升级和替代方案

于 2008-09-23T04:41:00.620 回答
1

改编自Castor JDO FAQ,假设您要与日期而不是时间戳进行比较(请参阅OQL 参考)。

OQLQuery query = db.getOQLQuery("SELECT p FROM Person p "
      +"WHERE lastvisitdate=$2");
query.bind( new Date() ); //new Date() defaults to today.
于 2008-10-28T20:39:35.003 回答