【发布时间】:2012-09-06 11:10:47
【问题描述】:
我有跟随 ceode 到“创意”类的所有领域。有些字段是日期。
Criteria creativeCriteria = getSession().createCriteria(PcmCreative.class);
for(Entry<String,Object> mapEntry : propValMap.entrySet()){
if(mapEntry.getValue() == null){
creativeCriteria.add(Restrictions.isNull(mapEntry.getKey()));
//creativeCriteria.add(Restrictions.disjunction().add(Restrictions.isNull(mapEntry.getKey())).add(Restrictions.eq(mapEntry.getKey(),mapEntry.getValue())));
}else{
creativeCriteria.add(Restrictions.eq(mapEntry.getKey(),mapEntry.getValue()));
}
}
creativeCriteria.createAlias("campaign", "c").add(Restrictions.eq("c.campaignNumber", campaignNumber));
creativeCriteria.setProjection(Projections.rowCount());
return (Integer)creativeCriteria.uniqueResult();
我使用以下代码格式化我的日期:
String strDate = DateUtils.convertDateToString((Date) fieldValue,CmtConstants.CMTDATE_MYSQL_COMPARISION_FORMAT);
//fieldValue = DateUtils.convertStringToDate(strDate,CmtConstants.CMTDATE_MYSQL_COMPARISION_FORMAT);
其中 CMTDATE_MYSQL_COMPARISION_FORMAT 是“yyyy-mm-dd”。
但比较失败。作为 DateUtils.convertStringToDate 返回的日期,它在内部使用 SimpleDateFormat.parse 方法,它也包含 GMT 字符串,我认为它在休眠中无法实现critrai相等。任何解决方案如何删除 GMT 字符串并获取仅包含日期和时间部分的日期?
【问题讨论】:
标签: hibernate date criteria equality