使用Apache OpenJPA开发EJB 3.0应用,第6部分:处理实体生命周期事件的回调 - 编程入门网
部分:处理实体生命周期事件的回调(5)
时间:2011-08-31 IBM 肖菁
下面的信息是执行 上面的客户端后控制台打印出的信息,通过这些信息的先后顺序,我们可以了解 到这些事件的具体时机和先后顺序: 清单 3. 客户端后控制台打印出的信 息
OpenJPA 中还可以将一 个 Java 方法注册到两个实体生命周期事件上,比如我们可以用下面的这段代码 ,将 Animal 实体 log 方法注册到 PrePersist 和 PostPersiste 这两个实体生 命周期事件上。 清单 4. 将方法注册到两个实体生命周期事件上
如何使用实体监听器 在实体类中同时提供处理实体生命周期回调方法的代码不是很优雅的编程 方式,开发者通常考虑使用非持久的监听器类处理回调方法。OpenJPA 中支持使 用实体监听器处理实体的回调方法 , 而不是直接在实体类中处理回调方法。 在 OpenJPA 中,实体监听器类需要提供一个 public 的无参数构造器, 其他要求和在实体类中定义回调方法一样 , 一个监听器类同样可以处理多种回调 ,只需要为监听器中的方法提供回调方法对应的注释如 javax.persistence.PrePersist、javax.persistence.PostPersist 等。特别的 是,监听器中的每一个回调方法必须有一个 java.lang.Object 类型的参数,该 参数对应的对象代表了触发当前事件的实体对象。 使用Apache OpenJPA开发EJB 3.0应用,第6部分:处理实体生命周期事件的回调(6)时间:2011-08-31 IBM 肖菁我们可以使用下面的代 码创建一个实体监听器类。 清单 5. 创建一个实体监听器类
创建实体监听器后,开发者将实体监听器注册到需要被 监听的实体中,使用 javax.persistence.EntityListeners 注释可以为实体注册 监听器,这个注释支持同时为实体类设置多个监听器 , 只需要在注释的属性中提 供多个参数,各参数之间使用”,”隔开。我们可以使用下面的代码为 实体注册一个或者多个监听器类。 清单 6. 为实体注册一个或者多个监听 器类
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |