2012-10-30 62 views

回答

2
Date date = dateFormat.parse("1972-07-31 13:52:50.381"); 
String hql = "select u from User u where u.createTimestamp = :timestamp"; 
return session.createQuery(hql).setTimestamp("timestamp", date).list(); 
+0

谢谢Nizet,我得到它使用Criteria API本身 – user1132593

+0

而且解决方案将完全相同。您使用Java创建日期,并将'Restrictions.eq(“user.createTimestamp”,timestamp)'添加到条件中。 –

+0

db中的值是'1972-07-31 13:52:50.381000',所以只使用'1972-07-31 13:52:50.381'将不能用于等号子句? – user1132593

1

我用的是标准API的最佳方式: 刚刚发布后,我得到它的工作如下:

Criteria criteria = getHibernateTemplate().getSessionFactory().getCurrentSession().createCriteria(User.class); 
criteria.add(Restrictions.sqlRestriction("TO_CHAR(CREATE_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF')='1972-07-31 13:52:50.381000'"));