• DetachedCriteria的使用


    设计上能够灵活的依据 Criteria 的特点来方便地进行查询条件的组装。如今对 Hibernate的Criteria 的使用方法进行总结:
       Hibernate 设计了 CriteriaSpecification 作为 Criteria 的父接口。以下提供了 Criteria和DetachedCriteria 。

       Criteria 和 DetachedCriteria 的主要差别在于创建的形式不一样。 Criteria 是在线的,所
    以它是由 Hibernate Session 进行创建的;而 DetachedCriteria 是离线的。创建时无需
    Session,DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName(Name)
    进行DetachedCriteria 实例的创建。

    Spring 的框架提供了getHibernateTemplate

    ().findByCriteria(detachedCriteria) 方法能够非常方便地依据DetachedCriteria 来返回查询结
    果。
       Criteria 和 DetachedCriteria 均可使用 Criterion 和 Projection 设置查询条件。能够设
    置 FetchMode( 联合查询抓取的模式 ) ,设置排序方式。

    对于 Criteria 还能够设置 FlushModel

    (冲刷 Session 的方式)和 LockMode (数据库锁模式)。

    1:
    DetachedCriteria beautyCriteria =DetachedCriteria.forClass(Beauty.class).createCriteria("customers");
    beautyCriteria.add(Restrictions.eq("name", "Gates")):

    2:
    DetachedCriteria beautyCriteria =DetachedCriteria.forClass(Beauty.class).createAlias("customers","c");
    beautyCriteria.add(Restrictions.eq("c.name", "Gates")):

    接着有了新的要求,年纪太大的美女不要,还是查找拥有客户Gates的,条件例如以下:
    DetachedCriteria beautyCriteria =DetachedCriteria.forClass(Beauty.class, "b").;
    DetachedCriteria customerCriteria =beautyCriteria.createAlias("customers", c");
    beautyCriteria.add(Restrictions.le("b.age", new Long(20))):
    customerCriteria.add(Restrictions.eq("c.name", "Gates")):


  • 相关阅读:
    screenHeight和windowHeight的区别
    背景图及首次引导加载图片会闪烁、图片预加载
    项目模板
    后端返回一段字符串模板,前端如何解析?
    echarts 饼图label显示指定数据
    html2canvas页面生成图片并添加水印
    js 面试题总结
    如何快速绘制任意角度的扇形?
    纯HTML+CSS 拉窗帘效果
    常用regex正则表达式
  • 原文地址:https://www.cnblogs.com/mthoutai/p/6900894.html
Copyright © 2020-2023  润新知