新聞中心
本文向大家介紹Hibernate過濾器,可能好多人還不了解Hibernate過濾器,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

成都創(chuàng)新互聯(lián) - 成都移動服務(wù)器托管,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽服務(wù)器托管,德陽服務(wù)器托管,遂寧服務(wù)器托管,綿陽服務(wù)器托管,四川云主機,成都云主機,西南云主機,成都移動服務(wù)器托管,西南服務(wù)器托管,四川/成都大帶寬,成都機柜租用,四川老牌IDC服務(wù)商
Hibernate3新增了對某個類或者集合使用預(yù)先定義的Hibernate過濾器條件(filter criteria)的功能。過濾器條件相當(dāng)于定義一個 非常類似于類和各種集合上的“where”屬性的約束子句,但是過濾器條件可以帶參數(shù)。
應(yīng)用程序可以在運行時決定是否啟用給定的Hibernate過濾器,以及使用什么樣的參數(shù)值。 過濾器的用法很像數(shù)據(jù)庫視圖,只不過是在應(yīng)用程序中確定使用什么樣的參數(shù)的。
要使用過濾器,必須首先在相應(yīng)的映射節(jié)點中定義。而定義一個過濾器,要用到位于
name="myFilter"> name="myFilterParam" type="string"/>
定義好之后,就可以在某個類中使用這個過濾器:
name="myClass" ...> - ...
name="myFilter" condition=":myFilterParam = MY_FILTERED_COLUMN"/>
也可以在某個集合使用它:
...> name="myFilter" condition=":myFilterParam = MY_FILTERED_COLUMN"/>
可以在多個類或集合中使用某個過濾器;某個類或者集合中也可以使用多個過濾器。
Session對象中會用到的方法有:enableFilter(String filterName), getEnabledFilter(String filterName), 和 disableFilter(String filterName). Session中默認(rèn)是不啟用過濾器的,必須通過Session.enabledFilter()方法顯式的啟用。 該方法返回被啟用的Filter的實例。以上文定義的過濾器為例:
- session.enableFilter("myFilter").setParameter("myFilterParam", "some-value");
注意,org.hibernate.Filter的方法允許鏈?zhǔn)椒椒ㄕ{(diào)用。(類似上面例子中啟用Filter之后設(shè)定Filter參數(shù)這個“方法鏈”) Hibernate的其他部分也大多有這個特性。
下面是一個比較完整的例子,使用了記錄生效日期模式過濾有時效的數(shù)據(jù):
name="effectiveDate"> name="asOfDate" type="date"/> name="Employee" ...> - ...
name="department" column="dept_id" class="Department"/> name="effectiveStartDate" type="date" column="eff_start_dt"/> name="effectiveEndDate" type="date" column="eff_end_dt"/> - ...


咨詢
建站咨詢
