Hibernate格式的日期依次为

时间:2015-08-20 13:31:10

标签: hibernate

在我的数据库中,我定义了一个名为“creation_date”的时间戳字段 我正在尝试做的是这样的查询:

SELECT * FROM table_name ORDER BY date(creation_date) desc

我的代码定义为(仅限相关部分):

Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
Criteria crit = session.createCriteria(TableClass.class);
crit.addOrder(Order.desc("date(creationDate)");
return crit.list();

但这会导致Hibernate异常......

感谢您的帮助

编辑: creation_date持有“2015-08-17 15:01:37”但我想在DATE(creation_date)订购只保留“2015-08-17”

1 个答案:

答案 0 :(得分:2)

Hibernate条件API并不了解底层数据库的所有SQL函数。 你必须编写扩展hibernate org.hibernate.criterion.Order.class的自定义排序类。例如,请检查this

(OR)更简单,你可以在你的情况下使用HQL而不是像这样的Criteria API

Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
Query query = session.createQuery("from TableClass order by date(creationDate) desc ");
return query.list();