ITEEDU

Hibernate Gossip: Lifecycle 接口、Validatable 接口

可以在实体对象定义时实作Lifecycle接口,这个接口定义如下:
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,则对应的操作中止。

可以在实体对象定义时实作Validatable接口,其定义如下:
package org.hibernate.classic;

public interface Validatable {
    public void validate() throws ValidationFailure;
}
如果定义时实作了Validatable接口,当对象被持久化之前会呼叫validate()方法,如果丢出ValidationFailure,则验证失败,对象的数据不会储存至数据库中。