2013-03-28 54 views
1

我一直在试图找到一种方法来查询我的表中的所有日期,其中修改日期早于7天。休眠查询日期大于

这里是我不得不在工作,但它不会工作:

@SuppressWarnings({ "unchecked", "rawtypes" }) 
public List<Ownership> findOwnersByDate() { 
    log.debug("finding a filtered list of Ownerships"); 
    Session session = getSessionFactory().getCurrentSession(); 
    try { 
     session.beginTransaction(); 
     Criteria crit = session.createCriteria(Ownership.class) 
     .add(Restrictions.gt("modDate", new Integer(7))); 
     List results = crit.list(); 
     log.debug("get filtered ownerships successful, 
        result size: " + results.size()); 
     return results; 
    } catch (RuntimeException re) { 
     log.debug("query failed", re); 
     log.error("get filtered ownerships failed", re); 
     throw re; 
    } 
} 
+0

尝试把日期/日历对象的'GT()',而不是一个整数,无论​​使用何种类型的'modDate'是。 –

回答

3

传递new Integer(7)Restrictions.gt()相反的,尝试通过对应于当前日期减去7天的Date对象。您可以使用日历类是,例如:

Calendar cal = Calendar.getInstance(); 
cal.add(Calendar.DATE, -7); 
... 
Criteria crit = session.createCriteria(Ownership.class) 
    .add(Restrictions.gt("modDate", cal.getTime()));