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 ...
随机推荐
- SKU的结构与页面渲染
http://blog.jobbole.com/109138/?lwfrom=user_dingfriend
- YUIDoc的使用方法小结
一.YUIDoc概述以及安装YUIDoc是为YUI Library用来生成HTML版API文档的一系列工具集,文档的生成完全基于JavaDoc风格的代码注释规则.该工具是基于Python语言编写,并且 ...
- nable to load bean: type:com.opensymphony.xwork2.util.ValueStackFactory
严重: Exception starting filter struts2 Unable to load bean: type:com.opensymphony.xwork2.util.ValueSt ...
- 模态对话框 DoModal的用法 (vs2008)与非模态对话框
Windows对话框分为两类:模态对话框和非模态对话框. 模态对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互. ...
- HDOJ2955 0/1背包的价值和重量
[hdoj2955] 1.概率问题: 计算逃跑率,但是要变成相×的 2.背包处理问题 然后因为率不能作为那个重量,所以价值作为重量,求一个在每个价值下的最大的逃跑率,然后在给定的逃跑率下面,来一个su ...
- 基于FBX SDK的FBX模型解析与加载 -(四)
8. 骨骼蒙皮动画 骨骼蒙皮动画是当前游戏引擎中最常用的一种动画方式,关于其基本原理网络上的资料较多,关于到涉及的其它较复杂操作,如插值.融合等在这里也就先不再讨论了,而且其实现方式也与具体引擎的动作 ...
- EOS:dfuse stream 保证不会错过一个心跳
强大的 dfuse history API 给我们带来了高效的链数据获取途径,让我们的 dapp 在用户体验上了一个台阶. 官方示例 不会错过一个心跳 代码分析 函数 pendingActions 待 ...
- 9-25模拟赛 By cellur925
1.相遇(railway.cpp/c/pas)时间限制:1s内存限制:256MB[问题描述]已知我国有 n 座城市,这些城市通过 n-1 条高铁相连.且任意两个城市联通.小 A 想从 x1 号城市出发 ...
- oatu2.0认证原理(转)
今天有时间总结一下: 一.OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版. 在详细讲解OAuth 2.0之前,需要了解几个专用名词,理 ...
- AForge.net简介和认识
AForge.NET是一个专门为开发者和研究者基于C#框架设计的,他包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,模糊系统,机器人控制等领域.这个框架由一系列的类库组成.主要包括有 ...