2009-01-13 107 views

回答

1

如果我們有一個複雜的動態搜索,我們通常會構造一個SearchParameter對象,然後將它傳遞給一個將構建我們的標準的方法。

例如,如果我們正在尋找一個人,我們可能有一個看起來像這樣的搜索對象:

public class PersonSearchParameters 
{ 
    public string FirstName {get; set;} 
    public string LastName {get; set;} 

    public ICriteria GetSearchCriteria() 
    { 
     DetachedCriteria query = DetachedCriteria.For(typeof (Person)); 
     //Add query parameters 
     Return query; 
    } 
} 

然後對於每個類型的搜索,我們就可以從創建單一標準該類,或者我們可以有多個搜索參數類並將它們鏈接在一起

+0

這是同我使用 謝謝你 – 2009-01-13 22:08:38

1

我們使用HQL,但我們仍然試圖圍繞Criteria API來處理複雜查詢。使用HQL時,我們必須管理大量的重複。

+0

我不是HQL大師,但似乎用DetachedCriteria構建複雜的查詢看起來更容易。 感謝您的回答 – 2009-01-13 22:10:45

1

我使用了非常多的Ayende太複雜了,你想做什麼,你不能這樣做?

基本上我們添加的是我們有一個接口,我們定義了所有我們想要搜索的字段,當我們要進行搜索時我們稱之爲這意味着我們可以輕鬆地改變我們正在搜索的內容。

此外,我們正在使用的Active Record項目(Hibernate的頂部)和TIS很酷,任務載荷被簡化了,你缺少文檔中有時確實 傷害歡呼

+0

界面的事情聽起來不錯,你可以請在這裏發佈一些代碼或某處可能是我的郵件地址 – 2009-01-15 21:47:06