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();
            }
        }
    }
  • 相关阅读:
    lua版本的一个状态机
    unity getcomponentsinchildren 翻船
    dotween tips
    ulua c#调用lua中模拟的类成员函数
    洗牌算法
    unity的一些tips
    用Unity写一个12306验证器的恶搞图生成软件
    好久没写Blog了
    蛋疼的时候写三消游戏(十三)
    用DropBox分享Unity3D的Web应用
  • 原文地址:https://www.cnblogs.com/syjp/p/11078248.html
Copyright © 2011-2022 走看看