【问题标题】: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 已经有一段时间了,所以我不能说我真的有一个很好的答案给你。但是由于这个问题一直停滞不前,所以有几点建议;-)

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

    2. 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.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-17
        • 1970-01-01
        • 2018-06-11
        • 2021-11-24
        相关资源
        最近更新 更多