一、檢索策略
類級別:
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個對象的集合
二、查詢總結
1、get / loadd 根據oid 進行檢索
2、對象視圖導航檢索
3、Sql 語句查詢
4、HQL語句
5、Createria 查詢
三、事務,鎖,連接池
1、c3p0 連接池
1、導包 -》 Hibernate 的類庫中的Optional 文件夾下
2、配置c3p0 核心類到配置文件中
3、配置 c3p0 中的使用的參數
2、事務
- 隔離級別設置: (isolation)
鎖
悲觀鎖
讀鎖:select * from xxx lock in share mode => get(class,id,LockOptional.READ) 寫鎖:select * from for update get(class,id,LockOptional.UPGRADE);
樂觀鎖
1、實體中加入版本控制屬性(Integer)
2、Hibernate 中加入Version 元素