2010-03-02 62 views
0

一個開始日期和結束日期之間的日期屬性我想編寫一個函數來得到Entry對象,它們的date場是beginPeriodendPeriod我張貼下面的代碼片段與一個黑客的作品之間的列表。我必須從開始時間日期減去一天。看起來條件很好或平等不起作用。篩選與JDOQL

任何想法爲什麼我有這個問題?

public static List<Entry> getEntries(Date beginPeriod, Date endPeriod) { 
/* TODO 
* The great or equal condition does not seem to work in the filter below 
* Substract a day and it seems to work 
*/ 
Calendar calendar = Calendar.getInstance(); 
calendar.set(beginPeriod.getYear(), beginPeriod.getMonth(), beginPeriod.getDate() - 1); 
beginPeriod = calendar.getTime(); 

PersistenceManager pm = JdoUtil.getPm(); 
Query q = pm.newQuery(Entry.class);  
q.setFilter("this.date >= beginPeriodParam && this.date <= endPeriodParam"); 
q.declareParameters("java.util.Date beginPeriodParam, java.util.Date endPeriodParam");   
List<Entry> entries = (List<Entry>) q.execute(beginPeriod,endPeriod); 
return entries; 
} 

回答

0

我的猜測是,那是因爲在數組0開始我是想你(我的查詢不返回任何東西?),並注意到這是真的好幾個月 - 1 =>日,4 =>可能等。