以前用hibernate,一般都是使用hql语句的,因为和sql比较相近,对Criteria总是不屑一顾的,这个单词也那么难拼,也不会念!呵呵,今天才发现,这个还是比较适合动态多个条件的,也就是根据参数的个数增加where后面的条件个数,唉out很久了,把用法记录一下:
DetachedCriteria dc = DetachedCriteria.forClass(Msg.class);
if(StringUtils.hasText(key)){
dc.add(Restrictions.like("content", "%" + key + "%"));
}
if(start!=null){
dc.add(Restrictions.ge("sendat", start));
}
if(end!=null){
dc.add(Restrictions.le("sendat", end));
}
//返回符合条件的记录数
return ((Long)hibernateTemplate.findByCriteria(dc.setProjection(Projections.rowCount())).get(0)).intValue();
//返回分页的记录数
return hibernateTemplate.findByCriteria(dc, page*rows-rows, rows);
分享到:
相关推荐
### DetachedCriteria 使用详解 ...以上方法为 `DetachedCriteria` 的使用提供了丰富的功能,使其成为处理各种查询需求的强大工具。通过灵活运用这些方法,你可以构建出满足各种业务场景的复杂查询。
而 DetachedCriteria 则是离线的,创建时无需 Session,可以使用 `DetachedCriteria.forClass(Class)` 或 `DetachedCriteria.forEntityName(String)` 方法来创建实例。 DetachedCriteria 提供了两个静态方法来...
这里,`getExecutableCriteria()`方法将DetachedCriteria转换为标准的Criteria,然后通过Session的`list()`方法获取查询结果。 **6. DetachedCriteria 的高级用法** 除了基本的条件和排序,DetachedCriteria还可以...
DetachedCriteria
### DetachedCriteria 使用详解 #### 一、背景与概述 在Web开发中,经常会遇到需要根据用户提供的条件进行动态查询的需求。例如,在社交平台中,用户可以设置多种筛选条件来进行高级搜索,这时就需要动态生成SQL...
DetachedCriteria 对象可以通过 `DetachedCriteria.forClass()` 或 `DetachedCriteria.forEntityName()` 方法创建,而不是由 Session 创建。例如: `DetachedCriteria criteria = DetachedCriteria.forClass...
浅谈DetachedCriteria和Criteria的使用方法 DetachedCriteria和Criteria是Hibernate框架中两个重要的查询工具,用于动态生成SQL语句,进行查询。在Web编程中,DetachedCriteria和Criteria可以解决动态条件查询的...
Criteria API 提供了`createCriteria()`方法来指定关联的实体,从而实现JOIN操作。但是,DetachedCriteria并不直接支持`createCriteria()`,因为它不与Session绑定,无法直接获取到关联实体的信息,所以无法进行实时...
本文将对 Hibernate 中 Criteria 的用法进行总结,涵盖 Criteria 和 DetachedCriteria 的差异、Criterion 和 Projection 的使用方法等。 Hibernate 设计了 CriteriaSpecification 作为 Criteria 的父接口,下面提供...
以下是一些使用Criteria API的基本用法: 1. 创建Criteria实例: ```java Criteria criteria = session.createCriteria(User.class); ``` 2. 添加查询条件: ```java criteria.add(Restrictions.eq("username...
DetachedCriteria 提供了静态方法 forClass(Class) 或 forEntityName(Name) 来创建实例。 二、Criterion 和 Projection Criterion 是 Criteria 的查询条件,可以通过 add(Criterion criterion) 方法添加查询条件。...
### Criteria使用方法详解 #### 一、概述 在软件开发过程中,尤其是涉及到数据库操作的应用程序中,查询语言的灵活性和效率对于项目的成功至关重要。Hibernate作为Java领域中最流行的ORM(Object Relational ...
在Spring框架中,HibernateTemplate提供了一种方便的方式来执行DetachedCriteria查询,通过getHibernateTemplate().findByCriteria(detachedCriteria)方法,可以轻松地根据DetachedCriteria实例执行查询并获取结果。...
通过理解并熟练掌握`Criteria`、`DetachedCriteria`、`Criterion`和`Projection`等核心概念及其使用方法,可以显著提升数据库操作的效率和代码的可维护性。在实际项目中,结合Spring框架的便利性,开发者能够更加...
DetachedCriteria可以通过`forClass(Class)`或`forEntityName(String)`静态方法实例化,之后可以通过Spring的HibernateTemplate与数据库交互。 Criteria和DetachedCriteria都可以利用Criterion和Projection来设置...
在这个例子中,我们创建了两个条件,然后使用`Restrictions.and()`方法将它们组合成一个"年龄大于等于18且状态为active"的查询条件。 最后,我们来谈谈Criterion的性能。由于Hibernate会将Criterion转换为SQL语句...
通过本文的介绍,我们可以了解到Hibernate Criteria的强大功能及其使用方法。它不仅能够满足基础的数据查询需求,还能支持更复杂的查询逻辑组合,从而使得开发者能够更加高效地完成数据访问层的开发工作。在实际应用...