我的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;
}
答案 0 :(得分:0)
我会按如下方式添加Restriction
:
criteria.add(Restrictions.between("date", startDate, endDate);
其中startDate和endDate将是你年份的-01-01和-12-31(就像Ian Bjorhovde所说)。
如果要使用HQL,year()
函数是where
子句中的有效表达式。