Hibernate HQL查询中对日期的查询操作总结
@Override public int getCount(PlanSearchCriteria criteria) throws Exception { StringBuilder hql = new StringBuilder(); hql.append("SELECT COUNT(*) FROM Plan plan "); Map<String,Object> parameters = new HashMap<String,Object>(); hql.append(" WHERE 1 = 1 "); if(StringUtils.isNotEmpty(criteria.getPlanStatus())) { hql.append(" AND plan.planStatus = :planStatus "); parameters.put("planStatus", PlanStatus.valueOf(criteria.getPlanStatus())); } if(StringUtils.isNotEmpty(criteria.getPlanType())) { hql.append(" AND plan.planType = :planType "); parameters.put("planType", PlanType.valueOf(criteria.getPlanType())); } if(StringUtils.isNotEmpty(criteria.getNoticeTime())) { hql.append(" AND to_char(plan.notice.noticeTime,"yyyy-MM-dd") = :noticeTime" ); parameters.put("noticeTime", criteria.getNoticeTime()); } Query query = getSession().createQuery(hql.toString()); return ((Long) setParameter(query,parameters).uniqueResult()) .intValue(); } private Query setParameter(Query query,Map<String,Object> parameters) { if(parameters.get("planStatus") != null) { query.setParameter("planStatus", parameters.get("planStatus")); } if(parameters.get("planType") != null) { query.setParameter("planType", parameters.get("planType")); } if(parameters.get("noticeTime") != null) { query.setParameter("noticeTime", parameters.get("noticeTime")); } return query; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 习题8-5 使用函数实现字符串部分复制(20 分)
- 下一篇: 用C语言打造自己的字符串拷贝函数