2010-03-02 61 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 =>可能等。