如何使用Criteria基于年份在日期字段(在DB2中)进行连接

时间:2010-03-24 18:39:26

标签: java hibernate db2

我的Object中有一个java.util.Date字段。我想使用Criteria选择具有给定年份的日期字段的所有行。 SQL将如下所示:

SELECT *
FROM GAME GM
WHERE YEAR(GM.GAME_DATE) = 2010

我如何使用Criteria来实现这一目标?提前谢谢。

public Collection<Game> getGamesByDate(Date date){
        Collection<Game> games = null;

        try {       
            session.beginTransaction();
            Criteria criteria = session.createCriteria(Game.class);
            criteria ....
                        ...
                        ...
            games = criteria.list();
        } catch (HibernateException e) {
            e.printStackTrace();
        }

        return games;
    }

1 个答案:

答案 0 :(得分:0)

我会按如下方式添加Restriction

criteria.add(Restrictions.between("date", startDate, endDate);

其中startDate和endDate将是你年份的-01-01和-12-31(就像Ian Bjorhovde所说)。

如果要使用HQL,year()函数是where子句中的有效表达式。