'3'").list();for(" />

使用Hibernate过滤集合元素的两种方法

系统 1590 0
 (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());
           }
          
}

 

(2)通过HBM文件

    注意,必须设置lazy="true" 否则hibernate会预先加载computer数据,达不到过滤器再过滤的效果

       < 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());
           }
          
        }


使用Hibernate过滤集合元素的两种方法


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论