hql语法001
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的更多相关文章
- jpa 联表查询 返回自定义对象 hql语法 原生sql 语法 1.11.9版本
-----业务场景中经常涉及到联查,jpa的hql语法提供了内连接的查询方式(不支持复杂hql,比如left join ,right join). 上代码了 1.我们要联查房屋和房屋用户中间表,通过 ...
- 查询总结、HQL语法、QBC(QueryByCriteria)深入学习
1.查询总结 在之前的批量查询练习的时候练习基本五种查询方法的使用: 1.OID查询---根据对象ID进行查询 2.对象属性导航查询: obj.getXXX 3.HQL查询:Query对象查询 4.Q ...
- Hibernate 框架 -HQL 语法
HQL ( Hibernate Query Language ) 查询语言是面向对象的查询语言,也是在 Hibernate 中最常见的.其语法和 SQL 语法有一些相似,功能十分强大,几乎支持除特殊 ...
- 一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)
Hive官网(HQL)语法手册(英文版):https://cwiki.apache.org/confluence/display/Hive/LanguageManual Hive的数据存储 1.Hiv ...
- [转]hql 语法与详细解释
HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此 Hib ...
- HQL语法
HQL:Hibernate Query Language HQL是完全面向对象的查询语言,因此可以支持继承和多态等特征. $下面介绍HQL语句的语法 1.from子句 from Person 表明从P ...
- hql 语法详解
HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此 Hib ...
- hql 语法与详细解释<转>
HQL查询 HQL查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性 ...
- 3 hql语法及自定义函数(含array、map讲解) + hive的java api
本博文的主要内容如下: .hive的详细官方手册 .hive支持的数据类型 .Hive Shell .Hive工程所需依赖的jar包 .hive自定义函数 .分桶4 .附PPT hiv ...
随机推荐
- Windows下如何生成数字证书
1.Makecert.exe<证书创建工具>使用说明:http://msdn.microsoft.com/zh-cn/library/bfsktky3.aspx 2.SignTool.ex ...
- 什么是位、字节、字、KB、MB?
1. 位(bit)是计算机里最小的数据单位,每一位的状态只能是0或者1 2. 字节(Byte) 1Byte = 8 bit 它是存储空间的基本计量单位,1byte可以存储一个英文字 ...
- VMware ESXI虚拟机挂载移动硬盘
Windows server2008 R2 1.“编辑虚拟机设置”,点击“添加” 2.点击添加“USB控制器”: 3.添加完“USB控制器”以后,再点击添加“USB设备”: 完成即可:如果系统里面不显 ...
- E20180424-hm
thumb n. 拇指; (手套的) 拇指部份; trigger vt. 引发,触发; 扣…的扳机; 发射或使爆炸(武器或爆炸性弹药); n. (枪) 扳机; 起动装置,扳柄; 引发其他事 ...
- 机器学习--DIY笔记与感悟--①K-临近算法(2)
上一篇博客我手动写了KNN算法,并且之后用手写的算法预测了约会的成功率. 而今天,我在大神博客的指导下调用sklearn这个库来预测图片的内容. 一.前期准备 由于我这里使用的是mac版本,而skle ...
- bzoj 3704: 昊昊的机油之GRST【贪心+脑洞】
脑洞题大概 首先处理出每个位置需要操作的次数c,假设第一次达到目标就不能再走,这样的操作次数是c差分后值的正数和,就想成分治每一段然后同减最小值然后从0处断开 然后考虑能一圈一圈走的情况,连续一段多走 ...
- Codeforces 1000 (A~E)
A Codehorses T-shirts 相同长度之间互相转化即可 #include<iostream> #include<cstdio> #include<cstri ...
- 开发者神器!Windows上最强大的虚拟桌面工具-Dexpot
简介 : 用过Linux和Mac计算机的人都知道 , 这两个系统上都有个多桌面的功能非常使用 . 而在Windows上并没有该项功能 , 虽然目前Win10已经增加了多桌面的程序 , 但使用上仍体验不 ...
- MVC 感触
这几天接触了下 ef+ MVC+WEBAPI +bootstrop VIEW--->Controller -->WebAPI ---Model (Linq) 记住 VIEW里的 csh ...
- 使用Git分布式版本控制系统
GIT(分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本 ...