1.持久化類的編寫規(guī)則
2.主鍵的分類
1.自然主鍵 :利用表中的一個字段
2.代理主鍵 :本身不是表中必須的字段
--使用還是比較推薦代理主鍵,一旦主鍵參與到業(yè)務(wù)邏輯層,可能要修改源碼
-- 好的程序滿足OCP原則 ,對程序的擴(kuò)展OPen,對源碼的修改close的
3.主鍵的生成策略
1.主鍵的開發(fā)一般不允許用戶手動設(shè)置主鍵,一般主鍵交給數(shù)據(jù)庫,手動寫程序設(shè)置,在Bibernate為了減少程序的編寫,提供了很多種主鍵的生成策略。
---icrement :自動增長機(jī)制,適用于short,int,long類型的主鍵
---sequence:適用于short,int,long類型的主鍵,試用oracle
--indetity:適用于short,int,long類型的主鍵,試用Mysql
---uuid:試用于字符串類型的主鍵,使用hibernate中的隨機(jī)方式生成字符串主鍵。
---native:本地策略,可以在indetity和sequence之間自動切換
---assigned:放棄外鍵的管理,通過手動編寫程序或者用戶自己設(shè)置。
---foreign:外部的,一對一的一種關(guān)系映射的情況。
4.持久態(tài),瞬時態(tài),托管態(tài)
1.持久態(tài):持久化對象就是已經(jīng)被保存進(jìn)數(shù)據(jù)庫的實體對象,并且這個實體對象現(xiàn)在還處于Hibernate的緩存管理之中。這是對該實體對象的任何修改,都會在清理緩存時同步到數(shù)據(jù)庫中.
2.瞬時態(tài):當(dāng)我們通過Java的new關(guān)鍵字來生成一個實體對象時,這時這個實體對象就處于自由狀態(tài)。
3.托管態(tài):當(dāng)一個持久化對象,脫離開Hibernate的緩存管理后,它就處于游離狀態(tài),游離對象和自由對象的最大區(qū)別在于,游離對象在數(shù)據(jù)庫中可能還存在一條與它對應(yīng)的記錄,只是現(xiàn)在這個游離對象脫離了Hibernate的緩存管理,而自由對象不會在數(shù)據(jù)庫中出現(xiàn)與它對應(yīng)的數(shù)據(jù)記錄。

5.一級緩存
1.快照區(qū):當(dāng)進(jìn)行讀取的時候,會將其保存到快照區(qū),當(dāng)對這個對象修改的時候會在緩存區(qū)和快照區(qū)的進(jìn)行對比,如果不一樣則會對數(shù)據(jù)庫發(fā)送修改指令。

6.事務(wù)
1.事務(wù):也就是指邏輯上的一組操作要么全部成功,要么全部失敗。
事務(wù)的特性:
1.原子性:代表事務(wù)不可分割
2.一致性:代表事務(wù)執(zhí)行的前后,數(shù)據(jù)的完整性保持一致。
3.隔離性:代表一個事務(wù)執(zhí)行的過程中,不應(yīng)該受到其他事務(wù)的干擾。
4.持久性:代表事務(wù)執(zhí)行完成后,數(shù)據(jù)就持久到數(shù)據(jù)庫中。

2.設(shè)置隔離級別
<property name="hibernate.connection.isolation">4</property>

6.其他API
Query:用于接收HQL,查詢多個對象


