Hibernate筆記三之檢索策略、查詢總結、連接池

一、檢索策略

類級別:
load 方法 =》受class 元素上的lazy屬性影響

關聯級別:

1、一對多,多對多
            fetch:
                select (默認值)使用普通select 
                join 使用表連接查詢集合
                subselect 同時加載多個對象的集合時,使用子查詢
            lazy:
                true (默認值)需要使用時纔會加載
                false 立即加載
                extra 極其懶惰,調用集合的size 時,會發送count 語句
2、多對一
            fetch :
                select (默認值)使用普通select 語句查詢集合內容
                join 使用表連接查詢集合
            lazy:
                false 立即加載
                proxy 交給對方決定 -》受class 元素上的lazy 屬性所影響

        3、批量檢索
            batch-size : n 初始化N個對象的集合

二、查詢總結

    1get / loadd 根據oid 進行檢索
    2、對象視圖導航檢索
    3、Sql 語句查詢
    4、HQL語句
    5、Createria 查詢

三、事務,鎖,連接池

1、c3p0 連接池

    1、導包 -》 Hibernate 的類庫中的Optional 文件夾下
    2、配置c3p0 核心類到配置文件中
    3、配置 c3p0 中的使用的參數

2、事務

  • 隔離級別設置: (isolation)

這裏寫圖片描述

    1. 悲觀鎖

      讀鎖:select * from xxx lock in share mode =>                      get(class,id,LockOptional.READ)
      寫鎖:select * from for update  get(class,id,LockOptional.UPGRADE);
      
    2. 樂觀鎖

        1、實體中加入版本控制屬性(Integer)

        2、Hibernate 中加入Version 元素 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章