为了使用findByCriteria(detachedCriteria),首先写个接口:
protected RetCode findByCriteria(HibernateDaoSupport dao,DetachedCriteria detachedCriteria) { RetCode ret = new RetCode(); List results = dao.getHibernateTemplate() .findByCriteria(detachedCriteria); if (results == null || results.size() == 0) { ret.setCode(1001); ret.setDesc("无查询数据!"); ret.setDetail("未找到查询的相应数据"); ret.setObj(null); } else { ret.setCode(0); ret.setDesc("操作成功!"); ret.setObj(results); } return ret; }
然后便可以利用这个接口了:
/** * 查出所有处于生效状态的活动 * @param dbIcTask * @param currentPage * @param pageSize * @return */ public RetCode findAll() { return this.findByCriteria(dbIcTaskDAO, getAllUsefuleTaskCriteria()); }
最后,便是在getAllUsefuleTaskCriteria()这个方法里面写上SQL语句的条件:
private DetachedCriteria getAllUsefuleTaskCriteria() { DetachedCriteria crt = DetachedCriteria.forClass(DbIcTask.class); crt.add(Restrictions.sqlRestriction("state='1'")); crt.add(Restrictions.sqlRestriction("sysdate <= to_date(endtime,'yyyy-mm-dd hh24:mi:ss')")); crt.add(Restrictions.sqlRestriction("sysdate >= to_date(begintime,'yyyy-mm-dd hh24:mi:ss')")); return crt; }
相关推荐
使用 DetachedCriteria 可以很方便地根据查询条件来返回查询结果,Spring 框架提供了 `getHibernateTemplate().findByCriteria(detachedCriteria)` 方法来实现这一点。 Criteria 和 DetachedCriteria 均可使用 ...
### DetachedCriteria 使用详解 #### 一、背景与概述 在Web开发中,经常会遇到需要根据用户提供的条件进行动态查询的需求。例如,在社交平台中,用户可以设置多种筛选条件来进行高级搜索,这时就需要动态生成SQL...
`List results = getHibernateTemplate().findByCriteria(criteria);` `int count = ((Integer) results.get(0)).intValue();` 查询不重复的数据 可以使用 `setProjection()` 方法设置查询结果的投影,例如: `...
Spring框架提供了getHibernateTemplate().findByCriteria(detachedCriteria)方法,可以很方便地根据DetachedCriteria返回查询结果。 DetachedCriteria和Criteria是Hibernate框架中两个重要的查询工具,用于动态生成...
Spring 的框架提供了 getHibernateTemplate().findByCriteria(detachedCriteria) 方法,可以很方便地根据 DetachedCriteria 来返回查询结果。 Criteria 和 DetachedCriteria 均可使用 Criterion 和 Projection 设置...
List<User> results = getHibernateTemplate().findByCriteria(detachedCriteria); ``` 理解并熟练运用Hibernate的Criteria API,可以帮助开发者更有效地构建动态和复杂的查询,同时保持代码的整洁和可读性。在...
在Spring框架中,HibernateTemplate提供了一种方便的方式来执行DetachedCriteria查询,通过getHibernateTemplate().findByCriteria(detachedCriteria)方法,可以轻松地根据DetachedCriteria实例执行查询并获取结果。...
userList = getHibernateTemplate().findByCriteria(detachedCriteria); ``` Criteria API的优势在于其灵活性,可以根据业务需求动态构建查询,同时减少了硬编码SQL,提高了代码的可读性和可维护性。然而,对于...
return (List) hibernateTemplate.findByCriteria(detachedCriteria, startIndex, pageSize); } @Override public void save(LinkMan linkMan) { hibernateTemplate.save(linkMan); } @Override public ...
List<Cat> whiteCats = getHibernateTemplate().findByCriteria(detachedCriteria); ``` #### 四、小结 Hibernate的Criteria API通过其丰富的特性和灵活性,为开发者提供了构建复杂查询的强大工具。通过理解并...
List<Cat> cats = getHibernateTemplate().findByCriteria(criteria); ``` #### 三、Criterion与Projection **1. Criterion** - **定义**:`Criterion`是`Criteria`的查询条件。它定义了查询的具体条件,如等于、...
List<Cat> cats = getHibernateTemplate().findByCriteria(detachedCriteria); ``` ##### 2. Projection 除了基本的查询之外,`Criteria`还支持`Projection`,即可以选择特定的列进行查询。例如,可以计算所有猫的...
2. **使用DetachedCriteria:** 当需要执行查询时,可以通过`getHibernateTemplate().findByCriteria`方法来使用这个`DetachedCriteria`实例。 ```java List<Cat> cats = getHibernateTemplate().findByCriteria...