`
zc_888
  • 浏览: 19852 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

Hibernate QBC的查询方式的总结

 
阅读更多

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:Java 对象持久化技术详解(第2版).part2

     1.3 小结  1.4 思考题 第2章 Java对象持久化技术概述  2.1 直接通过JDBC API来持久化实体域对象  2.2 ORM简介  2.2.1 对象-关系映射的概念  2.2.2 ORM中间件的基本使用方法  2.2.3 常用的ORM中间件  2.3 ...

    JSP开发中hibernate框架的常用检索方式总结

    总结hibernate框架的常用检索方式 1、hibernate框架的检索方式有以下几种: OID检索:根据唯一标识OID检索数据 对象导航检索:根据某个对象导航查询与该对象关联的对象数据 HQL检索:通过query接口对象查询 QBC...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     1.3 小结  1.4 思考题 第2章 Java对象持久化技术概述  2.1 直接通过JDBC API来持久化实体域对象  2.2 ORM简介  2.2.1 对象-关系映射的概念  2.2.2 ORM中间件的基本使用方法  2.2.3 常用的ORM中间件  2.3 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     1.3 小结  1.4 思考题 第2章 Java对象持久化技术概述  2.1 直接通过JDBC API来持久化实体域对象  2.2 ORM简介  2.2.1 对象-关系映射的概念  2.2.2 ORM中间件的基本使用方法  2.2.3 常用的ORM中间件  2.3 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     1.3 小结  1.4 思考题 第2章 Java对象持久化技术概述  2.1 直接通过JDBC API来持久化实体域对象  2.2 ORM简介  2.2.1 对象-关系映射的概念  2.2.2 ORM中间件的基本使用方法  2.2.3 常用的ORM中间件  2.3 ...

    hibernate总结

    Hibernate的检索方式:(查询/加载) 1. 通过OID加载 session.get(Users.class, 1); * 2. 通过HQL/SQL 检索 hibernate query language (面向对象的查询语言) * a) 不再操纵表,它操纵的是持久化类的对象 b) 面向...

    低清版 大型门户网站是这样炼成的.pdf

    5.4 qbc查询方式 314 5.4.1 基本查询 315 5.4.2 qbe查询 317 5.4.3 分页查询 318 5.4.4 复合查询 318 5.4.5 离线查询 319 5.5 本地sql查询 320 5.6 hibernate的批量处理 322 5.6.1 批量插入 322 5.6.2 批量...

    Java Web程序设计教程

    9.2hibernate的数据查询方式 193 9.2.1hql方式 193 9.2.2qbc方式 194 9.2.3原生sql方式 195 9.3hibernate的关联查询 196 9.3.1一对一关联关系的使用 196 9.3.2一对多、多对一关联关系的使用 197 9.3.3多对多...

    Java学习笔记-个人整理的

    {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {1.4.1}整数与浮点数}{23}{subsection.1.4.1} {1.4.1.1}浮点数原理}...

Global site tag (gtag.js) - Google Analytics