【问题标题】:Filter on current date within Castor OQL在 Castor OQL 中过滤当前日期
【发布时间】:2008-09-18 22:34:00
【问题描述】:
我正在运行 java cocoon 2 和 castor oql。我正在尝试按今天的日期过滤我的 oql 查询,但我似乎无法弄清楚(或在谷歌中找到)日期的语法。数据库是 mySql,但 oql 是由 java 类映射的......所以在 field_date >= Now() 上进行搜索不起作用。有任何想法吗?我真的无法忍受这个网站的局限性,但这是我必须使用的。
【问题讨论】:
标签:
java
castor
apache-cocoon
oql
【解决方案1】:
自从我使用 Cocoon 已经有一段时间了,所以我不能说我真的有一个很好的答案给你。但是由于这个问题一直停滞不前,所以有几点建议;-)
只有在编写文字 SQL 字符串时,语法才有意义。我的印象是使用 castor 可以绑定变量(并让 OQL 选择适当的格式)。即“ where field_date >= ?”,myDateVal
CastorTransformer 似乎只在一个特定版本的 Cocoon 中短暂出现,而 AFAIK 不是最新版本。如果您可以控制正在运行的 Cocoon 版本,则可能需要查看 CastorTransformer 的升级和替代方案
【解决方案2】:
改编自Castor JDO FAQ,假设您要与日期而不是时间戳进行比较(请参阅OQL reference)。
OQLQuery query = db.getOQLQuery("SELECT p FROM Person p "
+"WHERE lastvisitdate=$2");
query.bind( new Date() ); //new Date() defaults to today.