Hibernate条件查询(DetachedCriteria)
方法 说明
Restrictions.eq =
Restrictions.allEq 利用Map来进行多个等于的限制
Restrictions.gt >
Restrictions.ge >=
Restrictions.lt <
Restrictions.le <=
Restrictions.between BETWEEN
Restrictions.like LIKE
Restrictions.in in
Restrictions.and and
Restrictions.or or
Restrictions.sqlRestriction 用SQL限定查
MatchMode类包含的各个静态常量实例
匹配模式
举例
MatchMode.START
Expression.like(“name”,”y”, MatchMode.START)
姓名以y开头
MatchMode.END
Expression.like(“name”,”y”, MatchMode. END)
姓名以y结尾
MatchMode.ANYWHERE
Expression.like(“name”,”y”, MatchMode. ANYWHERE)
姓名中包含y
MatchMode.EXACT
Expression.like(“name”,”y”, MatchMode. EXACT)
精确匹配,姓名必须为y
示例:
view source print?01 DetachedCriteria detachedCrit = DetachedCriteria.forClass(User.class);
02 detachedCrit.addOrder(Order.asc("uname")); //按照姓名排序
03
04 if (user!=null && user.getUname()!=null&& user.getUname().trim().length()>0) //姓名查询条件
05 detachedCrit.add(Restrictions.like("uname", user.getUname().trim(), MatchMode.ANYWHERE));
06 if (user!=null && user.getUloginId()!=null && user.getUloginId().trim().length()>0) //身份证号查询条件
07 detachedCrit.add(Restrictions.like("uloginId", user.getUloginId().trim(), MatchMode.ANYWHERE));
08 if(user!=null && user.getType()!=null && user.getType()!=0) {
09 detachedCrit.add(Restrictions.eq("type", user.getType()));
10 }
分享到:
相关推荐
使用 DetachedCriteria 可以很方便地根据查询条件来返回查询结果,Spring 框架提供了 `getHibernateTemplate().findByCriteria(detachedCriteria)` 方法来实现这一点。 Criteria 和 DetachedCriteria 均可使用 ...
在DetachedCriteria中定义的查询条件可以在稍后的时间点附加到Session上执行,这使得查询可以脱离当前的Session状态,因此得名“Detached”。这种特性在处理复杂的、跨多个事务的查询时非常有用,同时也可以避免因长...
在Java的持久化框架Hibernate中,DetachedCriteria是一个强大的查询工具,它允许我们在不与Session交互的情况下构建查询条件。然而,DetachedCriteria在处理复杂的关联查询,尤其是涉及到表连接(JOIN)时,可能存在...
DetachedCriteria 是 Hibernate 中的一种离线查询对象,它可以在不依赖 Session 的情况下生成动态 SQL 语句并进行查询。下面是 DetachedCriteria 查询的详细知识点: 创建 DetachedCriteria 对象 DetachedCriteria...
如果你希望在不打开Session的情况下构建查询条件,可以使用DetachedCriteria: ```java DetachedCriteria detached = DetachedCriteria.forClass(User.class); detached.setProjection(Projections.property(...
DetachedCriteria是Criteria API的一个扩展,它允许在业务层创建查询条件,并在数据访问层执行查询。 **特点:** - **面向对象:** 继承了Criteria API的所有优点。 - **业务逻辑分离:** 可以将查询条件的构建与...
例如,我们可以使用DetachedCriteria对象来创建一个基本的查询,然后根据需要添加限制条件(Restrictions)、排序(Order)等。 分页功能在大数据量的查询中尤为重要,因为它可以避免一次性加载过多数据导致性能...
同时,Hibernate还提供了Criteria API,它是QBC的一部分,提供了更多的动态查询功能,可以组合多个条件,甚至可以与DetachedCriteria结合,实现更复杂的查询逻辑。 总结来说,Java_Hibernate中的QBC和HQL各有优势和...
《Hibernate查询条件查询详解》 Hibernate作为Java领域中广受欢迎的对象关系映射(ORM)框架,极大地简化了数据库操作。其强大的查询能力是其核心功能之一。本篇将深入探讨Hibernate的条件查询,帮助开发者更好地...
Criteria API则提供了一种更加面向对象的查询方式,它允许我们构建查询条件并动态地组合它们。以下是如何使用Criteria API来获取所有用户: ```java Session session = HibernateUtil.getSessionFactory()....
5. **多态查询的实现**:Hibernate支持使用`DetachedCriteria`或`Criteria` API来进行多态查询,通过`createCriteria()`方法指定父类,并使用`add(Restrictions.in("property", values))`等方法来限制查询条件。...
- **基本操作**:Criteria查询可以通过DetachedCriteria创建,然后添加各种限制条件,如Restrictions.eq()用于等于,gt()用于大于等。还可以通过Projections获取特定的查询结果,如sum()、count()等。Order类用于...
10. **使用DetachedCriteria**:当查询条件在未来的某个时刻才确定时,可以先创建一个DetachedCriteria对象,然后在需要的时候再与Session关联并执行查询。 在实际开发中,Hibernate Criteria查询提供了很大的便利...
这里首先创建了一个`DetachedCriteria`对象,并添加了相应的查询条件。然后通过`getExecutableCriteria`方法获取一个可执行的`Criteria`对象,并执行查询。 #### 4. Example `Example`是另一种用于查询的方式,...
Criteria API是Hibernate提供的另一种查询方式,它允许开发者通过构建对象化的查询条件来执行数据库查询。下面是如何使用Criteria API查找特定用户的示例: ```java Session session = sessionFactory.openSession...
`DetachedCriteria` 是 Hibernate 提供的一种灵活且强大的查询机制,它允许你在脱离 Session 的情况下构建复杂的查询标准,这意味着你可以提前构建查询标准,然后在任何地方执行查询,而无需关心当前是否有 Session...
`org.hibernate.criterion`包中的类如`DetachedCriteria`、`Expression`等用于构建这些条件。源码中,`CriteriaQueryTranslator`负责将Criteria API表达式转化为SQL。 最后,JPA的JPQL(Java Persistence Query ...
为了解决这个问题,可以在`DetachedCriteria`中设置相应的查询条件,以实现带条件的分页查询。 通过理解和熟练运用这些基本查询方法,你可以有效地利用Hibernate进行数据操作,从而提高开发效率。在实际项目中,还...
在复杂的查询场景下,可以使用DetachedCriteria来预定义查询条件,然后在需要时再与其他查询组合使用。 5. **命名查询(Named Queries)**: 如果某些查询模式经常被使用,可以定义命名查询,将其写入XML映射文件...
Criteria API提供了更面向对象的查询方式,通过`DetachedCriteria`构建查询条件,然后通过`session.createCriteria()`执行查询。 ### 练习题二:查询特定时间段内入职的员工 #### SQL查询 ```sql SELECT d.ename ...