日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Hibernate過濾器使用竅門

本文向大家介紹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é)點中定義。而定義一個過濾器,要用到位于 節(jié)點之內(nèi)的節(jié)點:

 
 
 
  1.  name="myFilter"> 
  2.  
  3.      name="myFilterParam" type="string"/> 
  4.  
  5.  

定義好之后,就可以在某個類中使用這個過濾器:

 
 
 
  1.  name="myClass" ...> 
  2.  
  3.     ...  
  4.  
  5.      name="myFilter" condition=":myFilterParam = MY_FILTERED_COLUMN"/> 
  6.  
  7.  

也可以在某個集合使用它:

 
 
 
  1.  ...> 
  2.  
  3.      name="myFilter" condition=":myFilterParam = MY_FILTERED_COLUMN"/> 
  4.  
  5.  

可以在多個類或集合中使用某個過濾器;某個類或者集合中也可以使用多個過濾器。

Session對象中會用到的方法有:enableFilter(String filterName), getEnabledFilter(String filterName), 和 disableFilter(String filterName). Session中默認(rèn)是不啟用過濾器的,必須通過Session.enabledFilter()方法顯式的啟用。 該方法返回被啟用的Filter的實例。以上文定義的過濾器為例:

 
 
 
  1. session.enableFilter("myFilter").setParameter("myFilterParam", "some-value"); 

注意,org.hibernate.Filter的方法允許鏈?zhǔn)椒椒ㄕ{(diào)用。(類似上面例子中啟用Filter之后設(shè)定Filter參數(shù)這個“方法鏈”) Hibernate的其他部分也大多有這個特性。

下面是一個比較完整的例子,使用了記錄生效日期模式過濾有時效的數(shù)據(jù):

 
 
 
  1.  name="effectiveDate"> 
  2.  
  3.      name="asOfDate" type="date"/> 
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  name="Employee" ...> 
  10.  
  11. ...  
  12.  
  13.      name="department" column="dept_id" class="Department"/> 
  14.  
  15.      name="effectiveStartDate" type="date" column="eff_start_dt"/> 
  16.  
  17.      name="effectiveEndDate" type="date" column="eff_end_dt"/> 
  18.  
  19. ...  
  20.  
  21.