1、

import java.util.List;

import org.hibernate.*;
import org.junit.Test; import cn.jbit.hibernatedemo.dao.HibernateUtil;
import cn.jbit.hibernatedemo.entity.Dept;
import cn.jbit.hibernatedemo.entity.Emp; public class Eg { /**
* 查询工资高于平均工资的员工。
*/
@Test
public void egEmp() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
List<Emp> list = session.createQuery(
"from Emp e where e.salary>(select avg(salary) from Emp)")
.list();
for (Emp emp : list) {
System.out.println(emp.getEmpName() + "," + emp.getSalary());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 查询所有员工工资都小于5000的部门。
*/
@Test
public void eg5() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
List<Dept> list = session
.createQuery(
"from Dept d where 5000>all(select e.salary from d.emps e) and d.emps.size>0")
.list();
for (Dept dept : list) {
System.out.println(dept.getDeptName());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
if (session != null)
session.close();
}
} /**
* 查询至少有一位员工工资低于5000的部门。
*/
@Test
public void eg6() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
List<Dept> list = session
.createQuery(
"from Dept d where 5000>any(select e.salary from d.emps e)")
.list();
for (Dept dept : list) {
System.out.println(dept.getDeptName());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
if (session != null)
session.close();
}
} /**
* ,查询员工工资正好是5000元的部门
*/
@Test
public void eg7() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
List<Dept> list = session
.createQuery(
"from Dept d where 5000=any(select e.salary from d.emps e)")
.list();
for (Dept dept : list) {
System.out.println(dept.getDeptName());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
if (session != null)
session.close();
}
} /**
* 查询员工工资正好是5000元的部门
*/
@Test
public void eg7_1() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
List<Dept> list = session
.createQuery(
"from Dept d where 5000=some(select e.salary from d.emps e)")
.list();
for (Dept dept : list) {
System.out.println(dept.getDeptName());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
if (session != null)
session.close();
}
} /**
* 查询员工工资正好是5000元的部门
*/
@Test
public void eg7_2() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
List<Dept> list = session
.createQuery(
"from Dept d where 5000 in (select e.salary from d.emps e)")
.list();
for (Dept dept : list) {
System.out.println(dept.getDeptName());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 查询至少有一位员工的部门
*/
@Test
public void eg8() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
List<Dept> list = session.createQuery(
"from Dept d where exists (from d.emps)").list();
for (Dept dept : list) {
System.out.println(dept.getDeptName());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 查询指定员工所在部门
*/
@Test
public void eg9() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
Emp emp = new Emp();
emp.setEmpNo(1);
List<Dept> list = session
.createQuery("from Dept d where ? in elements (d.emps)")
.setParameter(0, emp).list();
for (Dept dept : list) {
System.out.println(dept.getDeptName());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 查询指定员工所在部门
*/
@Test
public void eg9_1() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
Emp emp = new Emp();
emp.setEmpNo(1);
List<Dept> list = session
.createQuery("from Dept d where ? in (from d.emps)")
.setParameter(0, emp).list();
for (Dept dept : list) {
System.out.println(dept.getDeptName());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 查询员工个数大于5的部门
*/
@Test
public void eg10() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
List<Dept> list = session.createQuery(
"from Dept d where d.emps.size>5").list();
for (Dept dept : list) {
System.out.println(dept.getDeptName());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
} /**
* 查询员工个数大于5的部门
*/
@Test
public void eg10_1() {
Session session = null;
try {
// 获取session
session = HibernateUtil.currentSession();
List<Dept> list = session.createQuery(
"from Dept d where size(d.emps)>5").list();
for (Dept dept : list) {
System.out.println(dept.getDeptName());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭session
HibernateUtil.closeSession();
}
}
}

hql语法001的更多相关文章

  1. jpa 联表查询 返回自定义对象 hql语法 原生sql 语法 1.11.9版本

    -----业务场景中经常涉及到联查,jpa的hql语法提供了内连接的查询方式(不支持复杂hql,比如left join ,right join).  上代码了 1.我们要联查房屋和房屋用户中间表,通过 ...

  2. 查询总结、HQL语法、QBC(QueryByCriteria)深入学习

    1.查询总结 在之前的批量查询练习的时候练习基本五种查询方法的使用: 1.OID查询---根据对象ID进行查询 2.对象属性导航查询: obj.getXXX 3.HQL查询:Query对象查询 4.Q ...

  3. Hibernate 框架 -HQL 语法

    HQL ( Hibernate Query Language ) 查询语言是面向对象的查询语言,也是在 Hibernate 中最常见的.其语法和 SQL 语法有一些相似,功能十分强大,几乎支持除特殊 ...

  4. 一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)

    Hive官网(HQL)语法手册(英文版):https://cwiki.apache.org/confluence/display/Hive/LanguageManual Hive的数据存储 1.Hiv ...

  5. [转]hql 语法与详细解释

    HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此 Hib ...

  6. HQL语法

    HQL:Hibernate Query Language HQL是完全面向对象的查询语言,因此可以支持继承和多态等特征. $下面介绍HQL语句的语法 1.from子句 from Person 表明从P ...

  7. hql 语法详解

    HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此 Hib ...

  8. hql 语法与详细解释<转>

    HQL查询 HQL查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性 ...

  9. 3 hql语法及自定义函数(含array、map讲解) + hive的java api

    本博文的主要内容如下: .hive的详细官方手册    .hive支持的数据类型   .Hive Shell .Hive工程所需依赖的jar包  .hive自定义函数 .分桶4   .附PPT hiv ...

随机推荐

  1. 【前端】CentOS 7 系列教程之三: 搭建 git 服务器

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_3.html 上一篇我们安装好了git,这一篇我们搭建git服务器 创建一个用户组 groupadd g ...

  2. CKD 实现

    主要功能: 1.新物料(部品号)的入库管理 部品号的验证.描述.品名.重量.单价等 2.部品号-供应商的核对 校验部品号/供应商的对应情况.入库.移除等 3.BOM清单的导入 基础清单的导入 4.订单 ...

  3. git只clone仓库中指定子目录

    基于sparse clone变通方法 [root@vm_test backup]# mkdir devops[root@vm_test backup]# cd devops/[root@vm_test ...

  4. python学习笔记7-异常处理

    1 写弄成了读 1 try: fh = open("testfile", "r") fh.write("This is my test file fo ...

  5. CodeForces 712A Memory and Crow (水题)

    题意:有一个序列,然后对每一个进行ai = bi - bi + 1 + bi + 2 - bi + 3.... 的操作,最后得到了a 序列,给定 a 序列,求原序列. 析:很容易看出来,bi = ai ...

  6. android调用第三方库——第一篇 (转载)

    转自:http://blog.csdn.net/jiuyueguang/article/details/9447245 版权声明:本文为博主原创文章,未经博主允许不得转载. 0:前言: 这两天一直在研 ...

  7. childNodes和Children的区别

    1.childNodes: 标准的,返回指定元素的子元素集合,包括HTML属性,所有属性,文本.可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点 ...

  8. poj1850 Code【组合数学】By cellur925

    题意: * 按照字典序的顺序从小写字母 a 开始按顺序给出序列 (序列中都为升序字符串)* a - 1* b - 2* ...* z - 26* ab - 27* ...* az - 51* bc - ...

  9. Codeforces Round #410 (Div. 2) A

    Description Mike has a string s consisting of only lowercase English letters. He wants to change exa ...

  10. sublime text 3 文件列表忽略特定格式的文件

    Preferences->Settings ,编辑相关代码,注意JSON格式: 排除特定目录,使用:"folder_exclude_patterns" 排除特定文件,使用:& ...