?(1)通過代碼
???????
List?list
=
session.createQuery(
"
from?Programer
"
).list();
????????
????????
for
(Iterator?iter
=
list.iterator();iter.hasNext();)
????????
{
???????????Programer?p
=
(Programer)iter.next();
???????????Collection?pcs
=
session.createFilter(p.getComputers(),?
"
where?this.id>'3'
"
).list();
???????????
???????????
for
(Iterator?iter1
=
pcs.iterator();iter1.hasNext();)
{
???????????????Computer?c
=
(Computer)iter1.next();
???????????????System.out.println(c.getName());
???????????}
??????????
}
??????
<
set?name
=
"
computers
"
?cascade
=
"
save-update
"
?lazy
=
"
true
"
>
????????????
<
key
>
????????????????
<
column?name
=
"
programer_id
"
?length
=
"
50
"
?
/>
????????????
</
key
>
????????????
<
one
-
to
-
many?
class
=
"
com.Computer
"
?
/>
????????????
<
filter?name
=
"
idFilter
"
?condition
=
"
id>:idStr
"
></
filter
>
????????
</
set
>
????
</
class
>
????
<
filter
-
def?name
=
"
idFilter
"
>
???????
<
filter
-
param?name
=
"
idStr
"
?type
=
"
string
"
/>
????
</
filter
-
def
>
List?list
=
session.createQuery(
"
from?Programer
"
).list();
????????
????????
for
(Iterator?iter
=
list.iterator();iter.hasNext();)
????????
{
???????????Programer?p
=
(Programer)iter.next();
???????????Filter?filter
=
session.enableFilter(
"
idFilter
"
);
???????????filter.setParameter(
"
idStr
"
,?
"
3
"
);
???????????
for
(Iterator?iter1
=
p.getComputers().iterator();iter1.hasNext();)
{
???????????????Computer?c
=
(Computer)iter1.next();
???????????????System.out.println(c.getName());
???????????}
??????????
????????}
???????












?
(2)通過HBM文件
??? 注意,必須設置lazy="true" 否則hibernate會預先加載computer數據,達不到過濾器再過濾的效果












?
調用過濾器代碼
?












更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
