摘要:NHibernate系列之二_唯一鍵
如果是採用替代鍵做為主鍵的話,那以前的複合主鍵,一般都會被規畫為Unique Key。NH設定Unique Key的方法有三,前兩種可以指定多個欄位。不過唯一的用處,只有幫你建資料表時,加上唯一鍵的索引。
一、
使用以下的查詢,據說在二級快取有特殊的設計,但我沒測過。
var employee = session.CreateCriteria()
.Add(Restrictions.NaturalId()
.Set("FirstName", "大明")
.Set("LastName", "王"))
.SetCacheable(true)
.UniqueResult();
二、
那個unique-key最後也沒變成索引的名稱,不過的確是成為一組唯一鍵
三、
我測試的結果,NH並不會去一級快取中尋找Unique Key相同的(二級沒試過),當然也不會幫你警告已存在或自動Update的動作,所以這些動作還是要自己來的。