在BO对象中实现Lifecycle接口,这个接口的定义如下:
java 代码
- package org.hibernate.classic;
- import java.io.Serializable;
- import org.hibernate.CallbackException;
- import org.hibernate.Session;
- public interface Lifecycle {
- public static final boolean VETO = true;
- public static final boolean NO_VETO = false;
- public boolean onSave(Session s) throws CallbackException;
- public boolean onUpdate(Session s) throws CallbackException;
- public boolean onDelete(Session s) throws CallbackException;
- public void onLoad(Session s, Serializable id);
- }
当实现Lifecycle接口时,会在save(),update(),delete(),load()等方法执行之前呼叫对应的onSave(),onUpdate(),onDelete()与onLoad(),其中onSave(),onUpdate(),onDelete()与onLoad()若传回true或丢出CallbackException则对应的操作中止
在BO对象中实现Validatable接口,这个接口的定义如下:
java 代码
- package org.hibernate.classic;
- public interface Validatable {
- public void validate() throws ValidationFailure;
- }
如果定BO对象实现了Validatable接口时,当实体被持久化之前会调用validate()方法,如果抛出ValidationFailure则验证失败,实体的信息不会存储到数据库中