Hibernate QBC组合查询例子

Criteria criteria = session.createCriteria(Employee.class);
//1. AND: 使用Conjunction表示
//Conjunction 本身就是一个Criterion对象
//且其中还可以添加Criterion对象
Conjunction conjunction = Restrictions.conjunction();
conjunction.add(Restrictions.like("name", "a", MatchMode.ANYWHERE));
Department dept = new Department();
dept.setId(80);
conjunction.add(Restrictions.eq("eq", dept));
System.out.println(conjunction);

//2: OR
Disjunction disjunction = Restrictions.disjunction();
disjunction.add(Restrictions.ge("salary", 6000F));
disjunction.add(Restrictions.isNull("email"));

criteria.add(disjunction);
criteria.add(conjunction);

criteria.list();

结果:

... where (this_.SALARY >= ? or this_.EMAIL is null) and (this_.NAME like ? and this_.DEPT_ID = ?)
时间: 2024-10-09 06:12:43

Hibernate QBC组合查询例子的相关文章

hibernate QBC日期查询

使用QBC方式查询数据库,如果查询条件包含日期,则比较难以处理,尤其是在不是简单的在某个日期之前,或在某个日期之后的情况时,不能用hibernate常用方式,要用原生sql语句执行查询. 1.hibernate常用方式 方法                          说明        Restrictions.eq           =       Restrictions.allEq        利用Map来进行多个等于的限制        Restrictions.gt    

hibernate—QBC

QBC查询就是通过使用Hibernate提供的Query By Criteria API来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口.我们看下面的示例程序: Criteria criteria=session.createCriteria(User.class);   criteria.add(Expression.eq("name","zx"));   criteria.add(Expression.eq("age

Hibernate Query Language查询:

Hibernate Query Language查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装.完整的HQL语句形势如下: Select/update/delete-- fro

SQL语句汇总(三)——聚合函数、分组、子查询及组合查询 - Darly

–COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计算列的最小值 首先,创建数据表如下: 执行列.行计数(count): 标准格式 SELECT COUNT(<计数规范>) FROM <表名> 其中,计数规范包括: - * :计数所有选择的行,包括NULL值: - ALL 列名:计数指定列的所有非空值行,如果不写,默认为ALL: - DISTINCT 列名:计数指定列的唯一非空值行. 例,计算班里共有多少学生:

Hibernate六 HQL查询

HQL查询一 介绍1.HQL:Hibernate Query Language,是一种完全面向对象的查询语言.使用Hibernate有多重查询方式可供选择:hibernate的HQL查询,也可以使用条件查询,甚至使用原生的SQL查询语句.Hibernate还提供了一种数据过滤功能,这些都用于删选目标数据.2.查询步骤:(1)获取Hibernate Session对象(2)编写HQL语句(3)以HQL语句为参数,调用Session的createQuery()方法创建查询对象(4)如果HQL语句包含

Hibernate(九)HQL查询

一.Hibernate提供的查询方式 OID查询方式:主键查询.通过get()或者load()方法加载指定OID的对象查询结果为一个 HQL查询方式:通过Query接口使用HQL语言进行查询 QBC查询方式:通过Criteria等接口和类进行是查询 本地SQL查询方式:使用原生的SQL语言进行查询 对象导航查询方式:通过已经加载的对象,导航到其关联对象 其中HQL和QBC是Hibernater提供的专业的查询方式 HQL查询方式为官方推荐的标准查询方式 二.HQL查询简述 HQL:Hiberna

菜鸟第一发:jdbc多条件组合查询

注册了园子账号两个月了,今天刚开通博客,博客页面一片空白,对于有强迫症的我来说实在看得难受,刚好小菜鸟我最近做老师布置的课程设计需要组合查询,一开始我傻傻的拼sql语句,界面看起来乱七八糟啊,请教过老师后知道可以将表单获取的数据存进map中,再动态拼接sql语句.测试了一下发现我之前实在是太傻X了,哦马嘎! 这是我第一篇博客,记录最近的小心得,高手勿喷,谢谢. 表单处理 1 <form action="" method="post"> 2 编号:<

hibernate N+1 查询

hibernate N+1 查询hibernate N+1 查询 2016-2-16 by Damon 在Session的缓存中存放的是相互关联的对象图.默认情况下,当Hibernate从数据库中加载Customer对象时,会同时加载所有关联的Order对象.以Customer和Order类为例,假定ORDERS表的CUSTOMER_ID外键允许为null,图1列出了CUSTOMERS表和ORDERS表中的记录. 以下Session的find()方法用于到数据库中检索所有的Customer对象:

组合查询

提示:UNION与WHERE这一课一开始我们说过,UNION几乎总是完成与多个WHERE条件相同的工作.UNION ALL为UNION的一种形式,它完成WHERE子句完成不了的工作.如果确实需要每个条件的匹配行全部出现(包括重复行),就必须使用UNION ALL,而不是WHERE. 14.2.3 包含或取消重复的行 回到14.2.1节,我们看看所用的SELECT语句.注意到在分别执行语句时,第一条SELECT语句返回3行,第二条SELECT语句返回2行.而在用UNION组合两条SELECT语句后