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();
            }
        }
    }
  • 相关阅读:
    java-垃圾回收机制
    Java 父类Object类的常用方法总结
    Java面试题-异常
    java面试题-多线程
    java面试题-java集合类
    java面试基础题整理学习
    解决Tomcat部署,运行start.bat闪退 警告 [main] org.apache.catalina.startup.Catalina.load Catalina.start using conf/server.xml: 元素类型 "Host" 必须由匹配的结束标记 "</Host>" 终止。
    JDK学习---深入理解java中的HashMap、HashSet底层实现
    java多线程批量读取文件( 八)--读写分离
    zookeeper集群(二)
  • 原文地址:https://www.cnblogs.com/syjp/p/11078248.html
Copyright © 2011-2022 走看看