2011-08-02 9 views
2
私は、以下の条件 でXYZをオブジェクトにマッピングすべてのレコードを検索したい

A持つ日付フィールドXyzDateTime(そのタイムスタンプ) 今CURRENTTIME -xyzDateTime> 20 iは、レコードを選択したい
休止HQL日差

query = session.creatQuery(Select x from XYZ where :currentTime-xyzDateTime > 20) 
query.setParameter("currentTime",new Date()) 

これは間違いありませんか?
このように日付の違いを確認できますか?

+1

"これは正しいですか?" - それを実行すると、何が戻ってくるのですか? –

答えて

7

正しくありません。最も簡単な解決法はそうです(全く最善の解決策ではありません)

Date twentyDaysInFuture = new Date(Calendar.getInstance().add(Calendar.DAY_OF_MONTH, 20).getTime()); 

query = session.createQuery("SELECT x FROM XYZ x WHERE xyzDateTime > :endDate").setParameter("endDate", twentyDaysInFuture); 
+0

新しい日付(System.currentTimeMillis()+ 86400000 * 12)はもっと簡単です - でも、かなりかわいいです。 –

+2

@コンスタンチンプリブルダ:すべての問題には、明白で、単純で間違った答えがあります。 – kan