zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    }
  • 相关阅读:
    【Flask项目】 python学习第一章
    【Oracle】整理oracle命令 转载
    C# 利用SQLite对.DB和.logdb加密和解密和SQLite创建数据库
    C# 利用ICSharpCode.SharpZipLib实现在线加密压缩和解密解压缩
    Django Cookie 和 Sessions 应用
    Django中添加富文本编辑器
    Django实现简单分页功能
    Xadmin集成富文本编辑器ueditor
    Django安装Xadmin步骤
    Pycharm小技巧--使用正则进行查找和批量替换
  • 原文地址:https://www.cnblogs.com/syjp/p/11078248.html
Copyright © 2011-2022 走看看