Hibernate-Criteria(QBC)Restrictions各种方法

来源:互联网 发布:淘宝我的试用在哪里 编辑:程序博客网 时间:2024/06/06 03:27

对象查询。动态查询比HQL更有优势!
这里写图片描述

Criteria criteria = session.createCriteria(Dept.class);List<Dept> list=criteria.list();

dao

        public List findByCriteria(Object[] args) {        return HibernateSessionFactory                .getSession()                .createCriteria(Emp.class)                // and                .add(Restrictions.eq("id", 123))                .add(Restrictions.gt("hriedate", "1985-4-1"))                .add(Restrictions.ge("hriedate", "1985-4-1"))                .add(Restrictions.lt("hriedate", "1985-4-1"))                .add(Restrictions.le("hriedate", "1985-4-1"))                // or                .add(Restrictions.or(Restrictions.eq("id", 123),                        Restrictions.gt("hriedate", "1985-4-1")))                // 多个or                .add(Restrictions.disjunction().add(Restrictions.eq("id", 123))                        .add(Restrictions.gt("hriedate", "1985-4-1"))                        .add(Restrictions.ge("hriedate", "1985-4-1")))                // 各种条件                .add(Restrictions.between("age", "19", "25"))                // 张(STRAT是张在开头(END是张在后头)(ANYWHERE任何位置)(EXACT严格匹配))%                .add(Restrictions.like("name", "zhang", MatchMode.START))                .add(Restrictions.ilike("name", "zhang"))                // 忽略大小写                .add(Restrictions.in("id", args))                .add(Restrictions.isEmpty("emps"))                // Dept.emps(针对集合) 没有员工的部门                .add(Restrictions.isNotEmpty("emps"))                .add(Restrictions.not(Restrictions.isEmpty("emps")))// 给某些不带一对的条件取反用的                .add(Restrictions.isNull("sal"))// sal is null                .add(Restrictions.isNotNull("sal"))// sal is not null                .add(Restrictions.sizeEq("emps", 5))// 查询部门人数等于 5个的                .add(Restrictions.eq("id", 5)).add(Restrictions.ne("id", 5))// 不等于5                .add(Restrictions.eqProperty("birthday", "hiredate"))// 两个属性相等,其他属性也一样F                .list();    }    }
0 0