• 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要灵活的地方。

  • 相关阅读:
    javascript脚本轻松实现局部刷新
    asp.net中web.config 文件使用一则
    javascript脚本轻松实现局部刷新
    无限级树,ajax+asp.net2.0+Sql实现无限树
    能连接4种数据库(外加文件操作)的DatabaseHelper类
    Sql Server 存储过程分页
    FreeBSD iscsi 安装配置
    win7访问共享文件夹提示“未知的用户名或密码错误”
    Adobe CS5安装失败解决办法
    删除windows里保存的访问网络资源的帐号密码
  • 原文地址:https://www.cnblogs.com/ms-grf/p/7240917.html
Copyright © 2020-2023  润新知