<rt id="hkid1"></rt>
    <s id="hkid1"><meter id="hkid1"></meter></s>
  1. <rp id="hkid1"><meter id="hkid1"></meter></rp>
    <source id="hkid1"></source>
  2. <ruby id="hkid1"><optgroup id="hkid1"></optgroup></ruby>

    Hibernate筆記(三)

    小編:管理員 343閱讀 2022.09.14

    1.對象導航查詢

    兩個相關的對象

    2.OID查詢

    用id查出對象

    3.hql查詢

    Query對象

    1.hql
    • 查詢所有 from entity
    • 條件查詢 from entity where name=? setParameter(index,arg) 設置參數值
    • 模糊查詢 from entity where name like ?;
    • 排序 from entity order by name desc
    • 分頁 setFirstResult()開始位置 setMaxResults()每頁數
    • 投影 select property from entity property不能是*
    • 聚集函數
      • count select count(* ) from entity query.uniqueResult()
      • 其他的類似
    • 多表查詢
      • 內連接 form entity inner join entity.set 最后返回的是數組
      • 迫切內連接 form entity inner join fetch entity.set 最后返回的是list
      • 外連接 form entity left outer join entity.set 最后返回的是數組
      • 迫切左外連接 form entity left outer join fetch entity.set 最后返回的是list
    4.QBC查詢

    Criteria對象 createCriteria(entity.class)

    • 查詢所有 list()
    • 條件查詢 add(Restrictions.eq/like/(“property”,”value”)) -> list()
    • 排序 addOrder(Order.asc(“property”))
    • 分頁 setFirstResult()開始位置 setMaxResults()每頁數
    • 統計查詢 setProjection(Projetions.rowCount(10));
    • 離線查詢 DetachCriteria deCriteria=DetachCriteria.forClass(entity.class)Criteria criteria=deCriteria.getExectueableCriteria(); 與session無關 5.本地sql查詢 SQLQuery對象
    6.Hibernate的查詢策略1.立即查詢

    get方法就是立即查詢,方法執行立即發送語句 get(entity.Class,id)

    2.延時查詢

    load方法是延時查詢,方法調用不會立即發送語句,只有當我們獲取返回的對象中的非id字段的值得時候才會發語句。

    1.類級別的延遲

    例如根據id的查詢,最后查的是一個類的某個對象

    2.關聯級別的延遲

    當表之間是有關系的,然后我們進行延遲查詢

    關聯標簽:
    快三群