我正在尝试使用HQL更新两个日期之间的差等于特定天数的记录。
我正在使用此代码:
@Transactional
public void resetSendingAttempts(final Integer sendingAttemps, final Integer numberOfDaysToAttempt){
getCurrentSession().createQuery("UPDATE Donnee dp set dp.DP_NBR_TENTATIVE_ENVOI= 0, dp.DP_DATE_DERNIERE_TENTATIVE = Sysdate() where dp.DP_NBR_TENTATIVE_ENVOI >= :sendingAttemps and dp.DP_DATE_DERNIERE_TENTATIVE <= sysdate() - :numberOfDaysToAttempt").setParameter("sendingAttemps", sendingAttemps).setParameter("numberOfDaysToAttempt", numberOfDaysToAttempt).executeUpdate();
}
字段 DP_NBR_TENTATIVE_ENVOI 被声明为TIMESTAMP类型。 该HQL查询无法正常工作,我在网上查找了诸如TimeStAMPDiff()之类的日期函数,但HQL不支持它。
还有其他使用HQL的方法吗?