Criteriacriteria = this.getSession().createCriteria(EquipmentPO.class);
criteria. add (Restrictions.allEq(newMap(Restrictions.eq("equipID",newString(" 11020449 ")),Restrictions.eq("equipID",newString(" 11020449 "))));
// 注意:between查询条件可解释为查询EquipmentPO对象中的equipID属性值在newString(" 11020449 ")和newString(" 11030137 ")之间的所有记录值(包含两个端点)
criteria. add (Restrictions. between ("equipID",newString(" 11020449 "),newString(" 11030137 ")));
// 查询结果列表记录按照equipID的属性值来升序排序
criteria.addOrder( Order . asc ("equipID")); // 降序方式为: Order . desc ("equipID")
// 通过EquipmentPO对象的主键id来查询
criteria. add (Restrictions.idEq("402882ac0d3f7ca8010d3f7ef869000b"));
Restrictions. like (fieldName," % " + para + " % ")
// 使用ilike方式进行模糊查询
criteria. add (Restrictions.ilike("equipID",newString(" % 11020 % ")));
// ilike的i即ignore之意,所以这里查询出englishName值为"OptimaXL100KUltracentrifuge"(忽略大小写)的记录
criteria. add (Restrictions.ilike("englishName",newString("OptimaXL100KUltracentrifuge"),MatchMode.ANYWHERE)); // 这里
// 使用in方式有两种形式,即数组或者Collection的方式,可参考如下两个实例
criteria. add (Restrictions. in ("equipID",newString [] {" 11020449 "," 11020450 "})); // 数组参数
Collectioncol = newArrayList();
col. add (newString(" 11020449 "));
col. add (newString(" 11020450 "));
col. add (newString(" 11020874 "));
criteria. add (Restrictions. in ("equipID",col)); // Collection参数
// 使用isEmpty / isNotEmpty方式用来判断EquipmentPO对象中的Collection类型的属性是否为空的所有记录
// EquipmentPO对象中定义属性private Set equipFunctionDevelopPOs = newHashSet(); // 设备功能开发对象
criteria. add (Restrictions.isEmpty("equipFunctionDevelopPOs"));
criteria. add (Restrictions.isNotEmpty("equipFunctionDevelopPOs"));
// 使用isNull方式查询出所有schoolID属性没有值的记录。说明:Restrictions.isNull判断属性是否为空,为空返回true,反之返回false
criteria. add (Restrictions. isNull ("schoolID"));
criteria. add (Restrictions.isNotNull("schoolID"));
// 与Restrictions.eq正好相反,表示不存在( not in )
criteria. add (Restrictions. not (Restrictions.eq("equipID",newString(" 11020449 "))));
// 使用Restrictions.sizeEq方式用来查询EquipmentPO对象中的Collection类型的属性equipFunctionDevelopPOs的size为1的所有记录
criteria. add (Restrictions.sizeEq("equipFunctionDevelopPOs", 1 ));
// 使用sql限定的查询。注意{alias}.chnname这里是指实际表中的字段名而非属性名(不区分大小写)
criteria. add (Restrictions.sqlRestriction("{alias}.chnname like (?)"," % 电 % ",Hibernate.STRING));
criteria. add (Restrictions.sqlRestriction("{alias}.ENGNAME like (?)"," % ptima % ",Hibernate.STRING));
// 如果有多个查询条件,比如between子句的查询则如下:
BigDecimal [] unitPrice = {newBigDecimal( 402514 ),newBigDecimal( 614891 )};
Type [] types = {Hibernate.BIG_DECIMAL,Hibernate.BIG_DECIMAL};
criteria. add (Restrictions.sqlRestriction("{alias}.unit_price between (?) and (?)",unitPrice,types));
Listlist = criteria.list();
System.out.println("size ===> " + list.size());
return list;
原文地址:http://www.blogjava.net/ocean07000814/articles/72601.html
分享到:
相关推荐
本篇文章将深入探讨Hibernate中的QBC(Query By Example)条件查询与传统的HQL(Hibernate Query Language)查询的对比,帮助开发者更好地理解和选择适合的查询方式。 QBC(Query By Example)是Hibernate提供的一...
本文将深入探讨Hibernate的查询方式,特别聚焦于HQL(Hibernate Query Language)查询方式以及QBC(Query By Criteria)查询方式,旨在帮助读者全面理解并掌握这些核心功能。 #### HQL查询方式:面向对象的查询语言...
总结来说,QBC和QBE是Hibernate提供的两种实用查询方式,分别适合不同的场景。QBC适用于需要动态构建查询条件的场合,而QBE则在简单查询中表现出其易用性。理解和掌握这两种查询方式,对于提升Hibernate开发效率和...
总结起来,QBC是Hibernate中一种强大的查询工具,它为Java开发者提供了一种面向对象的查询方式,使得在MVC架构下处理数据查询变得更为简便。通过对QBC的深入理解和熟练运用,我们可以提升项目的可维护性和开发效率。
Hibernate QBC(Query By Criteria)查询是Hibernate框架中一种面向对象的查询方式,它通过提供Criteria API使得开发者能够更方便地构建和执行SQL查询。QBC查询的优势在于它允许程序员用更加面向对象的方式处理...
QBC(Query By Criteria)是Hibernate提供的一种查询方式,允许开发者通过构建查询条件来动态地创建SQL查询语句。相比于传统的HQL(Hibernate Query Language),QBC提供了更加灵活且易于控制的查询方式,特别适用于...
在Hibernate中,我们通常使用HQL(Hibernate Query Language)或Criteria API进行查询,但这些方式并不支持复杂的动态查询。为了实现动态SQL,我们可以借助于Hibernate的QBC(Query By Criteria)和Criteria API,...
Criteria API是Hibernate提供的另一种查询方式,它允许开发者通过构建对象化的查询条件来执行数据库查询。下面是如何使用Criteria API查找特定用户的示例: ```java Session session = sessionFactory.openSession...
总结起来,HQL和QBC是Hibernate提供的两种不同的查询手段,它们各自有其特点和适用场合。理解并熟练掌握这两种查询条件的使用,能够极大地提高开发效率,使得在处理数据库操作时更加游刃有余。在实际项目中,根据...
深入QBC查询.md可能涵盖了Hibernate的Query By Criteria API,这是另一种查询数据库的方式,除了传统的HQL(Hibernate Query Language)外,开发者可以通过构建Criteria对象来执行动态查询,这种方式更接近面向对象...
### 小结 以上介绍了Hibernate的五种检索方式:导航对象图检索、OID检索、HQL检索、QBC检索以及本地SQL检索。每种检索方式都有其独特的应用场景和特点。在实际开发过程中,根据项目的需求和技术背景选择合适的检索...
QBC(Query By Criteria,基于条件的查询)是 Hibernate 提供的一种查询方式,它可以根据对象的属性和条件来查询数据库中的数据。例如: ```java Criteria criteria = session.createCriteria(Order.class); ...
在 Hibernate 中进行查询是其核心功能之一,本文将详细介绍 Hibernate 的几种查询方式,包括 HQL (Hibernate Query Language) 查询、QBC (Query By Criteria) 查询以及 QBE (Query By Example) 查询,并结合示例代码...
下面我们将详细介绍如何在Spring Boot项目中集成Hibernate,并创建一个分页查询的示例。 首先,我们需要在项目中添加Spring Boot的起步依赖(Starter)和Hibernate的相关依赖。在`pom.xml`或`build.gradle`文件中,...
**三、Hibernate的查询方式** 1. **HQL(Hibernate Query Language)**:类似于SQL,但面向对象,支持条件查询、分页、连接查询和嵌套查询。 2. **QBC(Query By Criteria)**:基于对象的查询,通过Criteria API...
QBC是Hibernate框架提供的一个高级查询接口,允许开发者通过编程的方式构造复杂的查询条件,而不需要直接编写SQL语句。这种方式极大地提高了代码的可读性和可维护性,同时也使得查询逻辑更加灵活多变。 #### 二、...
在Hibernate中,提供了多种检索对象的方式,包括但不限于导航对象图检索方式、OID检索方式、HQL检索方式、QBC检索方式以及本地SQL检索方式。 #### 二、具体检索方式介绍 ##### 1. 导航对象图检索方式 导航对象图...
- **Criteria(QBC - Query By Criteria)**:基于对象的查询方式,提供了动态构建查询的能力,更加灵活,但可能比HQL复杂。 4. **实现分页**: - 在HQL和Criteria查询中,可以使用`setFirstResult`和`...
- **QBC (Query By Criteria)**:QBC是基于标准的API接口进行查询的方式,它提供了一个灵活的查询构建器,允许开发者构建复杂的查询条件。QBC支持多种条件组合,并且易于扩展。 - **本地SQL**:直接使用数据库的SQL...