hibernate过滤器

转自:http://42087743.iteye.com/blog/305219

Hibernate提供了对类使用预先定义的过滤器条件的功能,并提供了专门的Filter类.

[list] 首先在需要过滤的model类的hbm.xml中:
Java代码 收藏代码
  1. <classname="com.u2map.model.oneToOne.Pwd">
  2. <idname="id"column="id"type="integer">
  3. <generatorclass="foreign">
  4. <paramname="property">member</param>
  5. </generator>
  6. </id>
  7. <propertyname="pwd"column="pwd"type="string"></property>
  8. <one-to-onename="member"constrained="true"class="com.u2map.model.oneToOne.Member"></one-to-one>
  9. //过滤器配置
  10. <filtername="myFilter"condition="pwdlike:myFilterParam"/>
  11. </class>
  12. //过滤器配置
  13. <filter-defname="myFilter">
  14. <filter-paramname="myFilterParam"type="string"/>
  15. </filter-def>

[/list]

[list] 其次,在testcase中加上过滤:
Java代码 收藏代码
  1. //使用过滤器
  2. session.enableFilter("myFilter").setParameter("myFilterParam","%a%");
  3. Queryquery=session.createQuery("fromPwdpwherep.id=:id");
  4. query.setParameter("id",3);
  5. Pwdmember=null;
  6. try{
  7. member=(Pwd)query.uniqueResult();
  8. }catch(HibernateExceptione){
  9. e.printStackTrace();
  10. }
  11. Assert.assertEquals(member.getId(),3);
  12. Assert.assertEquals(member.getPwd(),"abc");

[/list]

[list] 查看下hibernate生成的sql语句,证明filter已经加上:
Java代码 收藏代码
  1. Hibernate:selectpwd0_.idasid1_,pwd0_.pwdaspwd1_fromPwdpwd0_wherepwd0_.pwdlike?andpwd0_.id=?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值