《深入浅出Hibernate》读书笔记(7)——回调与拦截机制

Hibernate通过Lifecycle、Validatable接口制定了实体对象CRUD过程中的回调方式。
      Lifecycle接口中的onSave、onUpdate、onDelete方法,如果返回true则意味着需要中止执行相应的操作过程。如果代码运行期间抛出了CallbackException,对应的操作也会被中止。注意,不要试图在这些方法中调用Session进行持久化操作,这些方法中Session无法正常使用。
      Validatable.validate方法将在实体被持久化之前得到调用以对数据进行验证。此方法在实体对象的生命周期内可能被数次调用,因此,此方法仅用于数据本身的逻辑校验,而不要试图在此实现业务逻辑的验证。



      Hibernate还引入了Interceptor,为持久化事件的捕获和处理提供了一个非侵略性的实现。Interceptor接口定义了Hibernate中的通用拦截机制。Session创建时即可指定加载相应的Interceptor,之后,此Session的持久化操作动作都将首先经由此拦截器捕获处理。简单的加载范例如下:

 

SessionFactory factory  =  config.buildSessionFactory();
Interceptor it 
=   new  MyInterceptor();
session 
=  sessionFactory.openSession(it);

      需要注意的是,与Lifecycle相同,Interceptor的方法中不可通过Session实例进行持久化操作。 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值