hibernate Criteria(QBC)

【基本查询】

  Criteria criteria = session.createCriteria(Customer.class);

  List<Customer> list = criteria.list()

【条件查询】

  Criteria criteria = session.createCriteria(Customer.class);

  criteria.add(Restrictions.eq("cust_id",1l)

  Customer customer = (Customer) criteria.uniqueResult()

  //条件函数:(>:gt)(>=:ge)(<:lt)(<=:le)(==:eq)(!=:ne)(in:in)(between and:between)(like:like)(is not null:isNotNull)(or:or)(and:and)

【分页查询】

  Criteria criteria = session.createCriteria(Customer.class);

  criteria.setFirstResult(1)

  criteria.setMaxResult(1)

  List<Customer> list = criteria.list()

【统计查询】

  Criteria criteria = session.createCriteria(Customer.class);

  criteria.setProjection(Projections.rowCount)

  Long count = (Long) criteria.uniqueResult()

【离线查询】(不只是固定到dao层,不用session创建)

  //web层

  DetachedCriteria dc = DetachedCriteria.forClass(Customer.class)

  dc.add(Restrictions.idEq(6l))

  //dao层

  Criteria c = dc.getExecutableCriteria(session)

  List list = c.list()

条件查询Restrictions方法如下

离线Criteria查询

  Criteria 和 DetachedCriteria 的主要区别在于创建的形式不一样, Criteria 是在线的,所以它是由 Hibernate Session 进行创建的;而 DetachedCriteria 是离线的,创建时无需Session,DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName(Name)进行DetachedCriteria 实例的创建。最重要的一点是Criteria只能存在dao层,因为是session创建,所以位置很固定,但是DetachedCriteria不一样,DetachedCriteria不依赖任何对象就可以创建,所以DetachedCriteria可以出现在web层或者service层,这就是DetachedCriteria比Criteria要灵活的地方。

转载于:https://www.cnblogs.com/ms-grf/p/7240917.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值