//日期区间处理 >=yyyy-MM-dd <yyyy-MM-dd +1
private Date dateStart;
private Date dateEnd;
if (map.get("dateStart")!=null&&!"".equals(map.get("dateStart"))) {
where.append(" and awardsDate >= ?");
params.add(map.get("dateStart"));
}
if (map.get("dateEnd")!=null&&!"".equals(map.get("dateEnd"))) {
//有问题 时间加1
where.append(" and awardsDate < ?");
Date dateEndd=(Date)map.get("dateEnd");
Calendar calendar=Calendar.getInstance();
calendar.clear();
calendar.setTime(dateEndd);
calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+1);//让日期加1
params.add(calendar.getTime());
}
hql语句 在from 后不支持 子查询
1.不能加入除对象之外的属性
2.如果从多个数据中找到一个特殊的数据,可根据where 判断进行筛选
如:
SELECT COUNT(*)
FROM C_RegistrationBroadcastSituation as rbsCount
where rbsCount.filmManagementId=rbsAll.filmManagementId
and rbsCount.buyer =rbsAll.buyer)as cou
from C_RegistrationBroadcastSituation as rbsAll
where rbsAll.broadCastDate=(
SELECT min(rbs.broadCastDate)as broadCastDate
FROM C_RegistrationBroadcastSituation as rbs
where rbs.filmManagementId=rbsAll.filmManagementId
and rbs.buyer =rbsAll.buyer
)
//如何把查询的值 放到 vo 对象中
StringBuffer hql = new StringBuffer("select new com.targ.cftvc.broadcastSituation.vo.BroadcastSituationStatisticsVO(rbsAll,playTime) ");