大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專(zhuān)注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 Hibernate過(guò)濾器的介紹

Hibernate過(guò)濾器的介紹

更新時(shí)間:2022-11-21 08:28:53 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1164次

使用注釋過(guò)濾器是通過(guò)@org.hibernate.annotations.FilterDef或定義的@org.hibernate.annotations.FilterDefs。過(guò)濾器定義有一個(gè)name()和一個(gè)參數(shù)數(shù)組()。參數(shù)將允許您在運(yùn)行時(shí)調(diào)整過(guò)濾器的行為。@ParamDef每個(gè)參數(shù)都由一個(gè)具有名稱(chēng)和類(lèi)型的參數(shù)定義。您還可以為defaultCondition()給定定義一個(gè)參數(shù),@FilterDef以設(shè)置在每個(gè)個(gè)體都沒(méi)有定義時(shí)要使用的默認(rèn)條件@Filter。@FilterDef(s) 可以在類(lèi)或包級(jí)別定義。

我們現(xiàn)在需要定義應(yīng)用于實(shí)體加載或集合加載的 SQL 過(guò)濾器子句。@Filter被使用并放置在實(shí)體或集合元素上。@FilterName和之間的連接@Filter是一個(gè)匹配的名字。

@Entity @FilterDef ( name = "minLength" ,  parameters = @ParamDef 
(  name = "minLength" ,  type = "integer" ) ) @Filters ( { @Filter ( name =     " betweenLength " , condition = " : minLength <=  length和 :maxLength >= length" ),     @Filter ( name = " minLength " ,  condition =  
":minLength <= length" ) 
} ) public class Forest { ... } 

當(dāng)集合使用關(guān)聯(lián)表作為關(guān)系表示時(shí),您可能希望將過(guò)濾條件應(yīng)用于關(guān)聯(lián)表本身或目標(biāo)實(shí)體表。要在目標(biāo)實(shí)體上應(yīng)用約束,請(qǐng)使用常規(guī)@Filter注釋。但是,如果要以關(guān)聯(lián)表為目標(biāo),請(qǐng)使用@FilterJoinTable注解。

@OneToMany @JoinTable 
    //在目標(biāo)實(shí)體表上過(guò)濾@Filter 
( name = "betweenLength" , condition  = " :minLength <= length and :maxLength >= length" ) //在關(guān)聯(lián)表上    過(guò)濾    @FilterJoinTable ( name = " security” ,  condition = “:userlevel >= requredLevel” ) public Set < Forest >  getForests () { ... }    

使用 Hibernate 映射文件來(lái)定義過(guò)濾器,情況非常相似。必須首先定義過(guò)濾器,然后將其附加到適當(dāng)?shù)挠成湓亍Rx過(guò)濾器,請(qǐng)?jiān)?span style="font-family:monospace"><filter-def>元素中使用<hibernate-mapping/>元素:

< filter-def name = "myFilter" > 
    <過(guò)濾器參數(shù)名稱(chēng)= “myFilterParam”類(lèi)型= “字符串” />  
</過(guò)濾器定義>

然后可以將此過(guò)濾器附加到一個(gè)類(lèi)或集合(或者同時(shí)附加到兩個(gè)或多個(gè)):

<班級(jí)名稱(chēng)= "我的班級(jí)"  ... > 
    ... <過(guò)濾器名稱(chēng)= "myFilter"條件= ":myFilterParam = MY_FILTERED_COLUMN" />      
    <設(shè)置 ... >
        <過(guò)濾器名稱(chēng)= "myFilter"條件= ":myFilterParam = MY_FILTERED_COLUMN" />  
    </集> </類(lèi)>  

Session對(duì)象中會(huì)用到的方法有:enableFilter(String filterName),getEnabledFilter(String filterName),和disableFilter(String filterName)。Session中默認(rèn)是不啟動(dòng)過(guò)濾器的,必須通過(guò)Session.enabledFilter()方法顯式的啟動(dòng)。該方法返回被啟動(dòng)Filter的為實(shí)例:上面的例子。

會(huì)議。啟用過(guò)濾器(“我的過(guò)濾器” )。setParameter ( "myFilterParam" , "some-value" ); 

注意,org.hibernate.Filter 的方法允許鏈接方式調(diào)用。(類(lèi)似上面例子中啟用 Filter 之后設(shè)置 Filter 參這個(gè)“方法鏈接”) Hibernate 的其他很多部分。

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

< filter-def name = "effectiveDate" > 
    <過(guò)濾器參數(shù)名稱(chēng)= “asOfDate”類(lèi)型= “日期” />  
</過(guò)濾器定義>
<類(lèi)名= “員工”  ... > 
... <多對(duì)一name = "department" column = "dept_id" class = "Department" />       
    <屬性名= "effectiveStartDate" type = "date" column = "eff_start_dt" />   
    <屬性名稱(chēng)= “effectiveEndDate”類(lèi)型= “日期”列= “eff_end_dt” />   
... <!--   
        請(qǐng)注意,這假設(shè)非終端記錄的 eff_end_dt 設(shè)置為
        為簡(jiǎn)單起見(jiàn),最大數(shù)據(jù)庫(kù)日期
    -->
    <過(guò)濾器名稱(chēng)= “有效日期” 
            condition = ":asOfDate BETWEEN eff_start_dt and eff_end_dt" />
</類(lèi)>
<班級(jí)名稱(chēng)= “部門(mén)”  ... > 
... < set name = "employees" lazy = "true" >      
        <關(guān)鍵列= “dept_id” /> 
        <一對(duì)多類(lèi)= “員工” /> 
        <過(guò)濾器名稱(chēng)= “有效日期” 
                condition = ":asOfDate BETWEEN eff_start_dt and eff_end_dt" />
    </套>
</類(lèi)>

定義好后,如果想保取回的都是目前為止生成期的記錄,只需要在獲取雇員數(shù)據(jù)的操作之前先啟動(dòng)過(guò)濾器即可:

會(huì)話 會(huì)話 = ...; 會(huì)議。啟用過(guò)濾器(“有效日期” )。setParameter ( "asOfDate" , new Date ()); 列出 結(jié)果 = 會(huì)話。createQuery ( "from Employee as e where e.salary > :targetSalary" ) 。setLong (“targetSalary” ,新長(zhǎng)(1000000 ))。列表(); 

 

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-10-10 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 五月天婷婷免费观看视频在线 | 黄色成人毛片 | 欧美日韩视频在线 | 搡女人视频免费 | 人人模人人干 | www久久久 | 美国毛片一级e片黑人片 | 福利在线免费 | 久久久久久夜精品精品免费 | 四虎网站入口 | 综合网在线观看 | 老司机午夜精品视频在线观看免费 | 中文字幕免费在线看线人动作大片 | 四虎网址在线 | 国产成人综合久久精品亚洲 | 国产综合精品 | 国产精品色婷婷在线观看 | 九九国产在线观看 | 亚洲精品无人区一区二区三区 | se成人国产精品 | 国产永久一区二区三区 | 欧美综合中文字幕久久 | 欧美一级毛片欧美毛片视频 | 91久久国产 | 高清国产天干天干天干不卡顿 | 日日久| 国产一区二区精品在线观看 | 欧美日韩色黄大片在线视频 | 久久国产精品99久久久久久老狼 | 国产高清国产专区国产精品 | 国产亚洲欧美久久精品 | 亚洲国产模特在线播放 | 五月天婷亚洲天综合网精品偷 | 四虎国产精品免费观看 | 亚洲精品乱码一区二区在线观看 | 不卡的 | 老子影院午夜伦不卡不四虎卡 | 久久98精品久久久久久婷婷 | 日本欧美在线播放 | 四虎永久地址入口 | 久久香蕉国产精品一区二区三 |