`
oufeng1983
  • 浏览: 25124 次
社区版块
存档分类
最新评论

Hibernate中的Lifecycle 接口和Validatable接口

阅读更多

在BO对象中实现Lifecycle接口,这个接口的定义如下:

java 代码
  1. package org.hibernate.classic;   
  2.   
  3. import java.io.Serializable;   
  4. import org.hibernate.CallbackException;   
  5. import org.hibernate.Session;   
  6.   
  7. public interface Lifecycle {   
  8.     public static final boolean VETO = true;   
  9.     public static final boolean NO_VETO = false;   
  10.   
  11.     public boolean onSave(Session s) throws CallbackException;   
  12.     public boolean onUpdate(Session s) throws CallbackException;   
  13.     public boolean onDelete(Session s) throws CallbackException;   
  14.     public void onLoad(Session s, Serializable id);   
  15. }  

当实现Lifecycle接口时,会在save(),update(),delete(),load()等方法执行之前呼叫对应的onSave(),onUpdate(),onDelete()与onLoad(),其中onSave(),onUpdate(),onDelete()与onLoad()若传回true或丢出CallbackException则对应的操作中止

在BO对象中实现Validatable接口,这个接口的定义如下:

java 代码
  1. package org.hibernate.classic;   
  2.   
  3. public interface Validatable {   
  4.     public void validate() throws ValidationFailure;   
  5. }  

如果定BO对象实现了Validatable接口时,当实体被持久化之前会调用validate()方法,如果抛出ValidationFailure则验证失败,实体的信息不会存储到数据库中

分享到:
评论

相关推荐

    configuration接口

    回调接口按实现方式可分为两类:Lifecycle 和 Validatable 接口,Interceptor 接口。Lifecycle 和 Validatable 接口由持久化类来实现,而 Interceptor 接口不必由持久化类来实现。 7. 映射类型接口 Type 接口表示 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     2.4.3 Hibernate映射类型接口  2.4.4 可供扩展的接口  2.5 小结  2.6 思考题 第3章 第一个Hibernate应用  3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射...

    Hibernate的高级操作

    - **Lifecycle与Validatable接口**:`Lifecycle`接口允许开发者指定对象创建、更新、删除等生命周期方法;`Validatable`接口允许在保存实体之前执行验证逻辑。 - **HibernateInterceptor**:这是一个非常灵活的机制...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     2.4.3 Hibernate映射类型接口  2.4.4 可供扩展的接口  2.5 小结  2.6 思考题 第3章 第一个Hibernate应用  3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     2.4.3 Hibernate映射类型接口  2.4.4 可供扩展的接口  2.5 小结  2.6 思考题 第3章 第一个Hibernate应用  3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     2.4.3 Hibernate映射类型接口  2.4.4 可供扩展的接口  2.5 小结  2.6 思考题 第3章 第一个Hibernate应用  3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射...

    jsp hibernate 数据保存操作的原理.docx

    通过对`session.save()`和`session.update()`方法的深入分析,我们可以看到Hibernate在进行数据保存和更新操作时遵循一套复杂而细致的流程。这种设计不仅提高了应用程序的性能,还简化了开发者的编码工作,使得他们...

    hibernate 教程

    持久化生命周期(Lifecycle)中的回调(Callbacks) 4.5. 合法性检查(Validatable)回调 4.6. XDoclet标记示例 5. O/R Mapping基础 5.1. 映射声明(Mapping declaration) 5.1.1. Doctype 5.1.2. ...

    hibernate

    持久化生命周期(Lifecycle)中的回调(Callbacks) 4.5. 合法性检查(Validatable)回调 4.6. XDoclet标记示例 5. O/R Mapping基础 5.1. 映射声明(Mapping declaration) 5.1.1. Doctype 5.1.2. ...

    jsp hibernate 数据保存操作的原理

    3. **验证接口处理**:如果实体类实现了`Validatable`接口,Hibernate会执行`validate()`方法,对即将保存的对象进行校验。 4. **拦截器处理**:如果有配置的拦截器(Interceptor),`save()`方法会调用`...

    J2EE应用开发基础

    - **持久化生命周期(Lifecycle)中的回调(Callbacks)**:介绍了在对象生命周期中可用的回调方法。 - **合法性检查(Validatable)**:定义了对象是否合法的验证逻辑。 - **XDoclet示例**:演示了如何使用XDoclet注释...

Global site tag (gtag.js) - Google Analytics