Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 比较日期禁止条件查询_Hibernate_Date_Criteria_Equality - Fatal编程技术网

Hibernate 比较日期禁止条件查询

Hibernate 比较日期禁止条件查询,hibernate,date,criteria,equality,Hibernate,Date,Criteria,Equality,我跟随ceode来到campare“创意”课程的所有领域。有些字段是日期 Criteria creativeCriteria = getSession().createCriteria(PcmCreative.class); for(Entry<String,Object> mapEntry : propValMap.entrySet()){ if(mapEntry.getValue() == null){ creativeCriter

我跟随ceode来到campare“创意”课程的所有领域。有些字段是日期

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();
其中CMTDATE\u MYSQL\u comparison\u格式为“yyyy-mm-dd”


但比较失败了。DateUtils.convertStringToDate返回的日期(内部使用SimpleDataFormat.parse方法)也包含GMT字符串,我认为它在hibernate中不符合标准。如何删除GMT字符串并获取仅包含日期和时间部分的日期的任何解决方案?

在添加日期格式之前,您需要编写转换日期格式的实用程序,其标准如下

 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) {
       }

}
 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) {
       }

}