在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则验证失败,实体的信息不会存储到数据库中
分享到:
相关推荐
回调接口按实现方式可分为两类:Lifecycle 和 Validatable 接口,Interceptor 接口。Lifecycle 和 Validatable 接口由持久化类来实现,而 Interceptor 接口不必由持久化类来实现。 7. 映射类型接口 Type 接口表示 ...
2.4.3 Hibernate映射类型接口 2.4.4 可供扩展的接口 2.5 小结 2.6 思考题 第3章 第一个Hibernate应用 3.1 创建Hibernate的配置文件 3.2 创建持久化类 3.3 创建数据库Schema 3.4 创建对象-关系映射...
- **Lifecycle与Validatable接口**:`Lifecycle`接口允许开发者指定对象创建、更新、删除等生命周期方法;`Validatable`接口允许在保存实体之前执行验证逻辑。 - **HibernateInterceptor**:这是一个非常灵活的机制...
2.4.3 Hibernate映射类型接口 2.4.4 可供扩展的接口 2.5 小结 2.6 思考题 第3章 第一个Hibernate应用 3.1 创建Hibernate的配置文件 3.2 创建持久化类 3.3 创建数据库Schema 3.4 创建对象-关系映射...
2.4.3 Hibernate映射类型接口 2.4.4 可供扩展的接口 2.5 小结 2.6 思考题 第3章 第一个Hibernate应用 3.1 创建Hibernate的配置文件 3.2 创建持久化类 3.3 创建数据库Schema 3.4 创建对象-关系映射...
2.4.3 Hibernate映射类型接口 2.4.4 可供扩展的接口 2.5 小结 2.6 思考题 第3章 第一个Hibernate应用 3.1 创建Hibernate的配置文件 3.2 创建持久化类 3.3 创建数据库Schema 3.4 创建对象-关系映射...
通过对`session.save()`和`session.update()`方法的深入分析,我们可以看到Hibernate在进行数据保存和更新操作时遵循一套复杂而细致的流程。这种设计不仅提高了应用程序的性能,还简化了开发者的编码工作,使得他们...
持久化生命周期(Lifecycle)中的回调(Callbacks) 4.5. 合法性检查(Validatable)回调 4.6. XDoclet标记示例 5. O/R Mapping基础 5.1. 映射声明(Mapping declaration) 5.1.1. Doctype 5.1.2. ...
持久化生命周期(Lifecycle)中的回调(Callbacks) 4.5. 合法性检查(Validatable)回调 4.6. XDoclet标记示例 5. O/R Mapping基础 5.1. 映射声明(Mapping declaration) 5.1.1. Doctype 5.1.2. ...
3. **验证接口处理**:如果实体类实现了`Validatable`接口,Hibernate会执行`validate()`方法,对即将保存的对象进行校验。 4. **拦截器处理**:如果有配置的拦截器(Interceptor),`save()`方法会调用`...
- **持久化生命周期(Lifecycle)中的回调(Callbacks)**:介绍了在对象生命周期中可用的回调方法。 - **合法性检查(Validatable)**:定义了对象是否合法的验证逻辑。 - **XDoclet示例**:演示了如何使用XDoclet注释...