1

私はjavacocoon2とcastoroqlを実行しています。今日の日付でoqlクエリをフィルタリングしようとしていますが、日付の構文を理解できない(またはGoogleで見つけられない)ようです。データベースはmySqlですが、oqlはjavaクラスによってマップされます...したがって、field_date> = Now()で検索を実行しても機能しません。何か案は?私は本当にこのサイトの制限に耐えることができませんが、それは私が取り組まなければならないものです。

4

2 に答える 2

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 に答える
1

Cocoonを使用してからしばらく経ちましたので、本当に素晴らしい答えがあるとは言えません. しかし、この質問は停滞しているので、提案するポイントがいくつかあります;-)

  1. 構文は、リテラル SQL 文字列をコーディングする場合にのみ重要です。castor を使用すると、変数をバインドできる (そして OQL に適切な形式を選択させる) ことができるという印象を受けました。つまり、" where field_date >= ?", myDateVal

  2. CastorTransformer は Cocoon の 1 つの特定のバージョンで簡単に登場するだけのようで、AFAIK は最新のものではありません。実行している Cocoon のバージョンを制御できる場合は、CastorTransformer のアップグレードと代替手段を検討することをお勧めします。

于 2008-09-23T04:41:00.620 に答える