2012-06-09 42 views
1

我試圖理解Hibernate中的示例查詢如何工作。Hibernate中的示例查詢

deptId是部門表的主鍵。

最初我嘗試這樣做的代碼:

Dept department = new Dept(); 
     department.setDeptId(3); 
     //department.setDeptName("ABCD"); 
     Criteria criteria = session.createCriteria(Dept.class).add(Example.create(department)); 

執行此代碼,結果沒有得到過濾WRT具有行DEPTID = 3即,SQL查詢是等同於從系表,其中1中選擇的所有記錄= 1

但如果我認爲這個代碼:

Dept department = new Dept(); 
     //department.setDeptId(3); 
     department.setDeptName("ABCD"); 
     Criteria criteria = session.createCriteria(Dept.class).add(Example.create(department)); 

結果得到過濾WRT的DEPTNAME即ABCD

請告知爲什麼示例查詢的行爲如此。

回答

3

documentation開始,示例查詢(QBE)將忽略主鍵。

對於簡單的主鍵,如果您知道PK的值,則可以使用load()get()代替。

對於組合主鍵,我同意在QBE中支持主鍵是必要的。不過,這個請求仍然是unresolved