Hibernate 中提供了Lifecyle和Validatable两个接口,用于对实体对象在进行CRUD过程中的回调方式.
Lifecyle提供了几个方法可以对实体对象在进行insert/update,save时的回调操作.
Validatable接口只提供了一个接口,为实体对象在进行数据验证时调用.
以上两个接口由于得由实体对象实现,带有侵入性.因此Hibernate提供了Interceptor接口,此接口在Session创建时加载,此后由此Session所调用的持久操作将进行拦截并处理.
SessionFactory sessionFacory=config.buildSessionFactory();
Interceptor it=new MyInterceptor();//MyInterceptor是实现了Interceptor的类.封闭了处理的业务操作
session=SessionFactory.openSession(it);
Interceptor典型应用:
数据几稽核即针对关键信息及其变更历史进行审查,作为业务跟踪的基础依据.
即使用回调的功能,监视持久化操作,并将其记录.这样做的好处是集中进行了对变更历史的处理.