【问题标题】:Comparing dates hiberanate criteria queries比较日期休眠条件查询
【发布时间】: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


    【解决方案1】:

    在添加日期格式之前,您需要编写实用程序来转换日期格式,条件如下。

     private java.sql.Date getSQLDate(Object dateObj) {
    
        SimpleDateFormat sdf = null;
        try {
    
            sdf = new SimpleDateFormat("yyyy-mm-dd");
            java.util.Date utilDate = sdf.parse((String) dateObj);
            if (utilDate == null) {
                return null;
            } else {
                return new java.sql.Date(utilDate.getTime());
            }
    
        } catch (ParseException parseEx) {
           }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2011-09-10
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 2011-06-08
      相关资源
      最近更新 更多