私は「クリエイティブ」クラスのすべての分野をカンパレするために次の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」です。
しかし、比較は失敗します。SimpleDateFormat.parseメソッドを内部的に使用するDateUtils.convertStringToDateによって返される日付には、休止状態でのcritraiの同等性に失敗すると思われるGMT文字列も含まれています。GMT文字列を削除し、日付と時刻の部分のみを含む日付を取得する方法はありますか?