日期:2014-05-16 浏览次数:20424 次
?
@EntityListeners
可以使用生命周期批注(请参阅生命周期事件批注 )指定实体中的方法,这些方法在指定的生命周期事件发生时执行您的逻辑。
使用 @EntityListeners 批注将一个或多个实体监听程序类与 @Entity 或 @MappedSuperclass 关联,条件是您需要在指定的生命周期事件发生时执行逻辑,以及:
当实体或子类上发生生命周期事件时,JPA 持续性提供程序将按监听程序定义的顺序通知每个实体监听程序,并调用使用相应的生命周期事件类型进行批注的实体监听程序方法(如果有)。
实体监听程序类具有以下特征:
public void <MethodName>(Object)
可以指定参数类型 Object ,或实体监听程序将与其关联的实体类的类型。
一个生命周期事件只能与一个回调监听程序方法关联,但某个给定的回调监听程序方法可以与多个生命周期事件关联。
如果使用实体监听程序,则可以管理哪些实体监听程序使用 @ExcludeDefaultListeners 和 @ExcludeSuperclassListeners 调用。
表 1-12 列出了此批注的属性。有关更多详细信息,请参阅 API 。
表 1-12 @EntityListeners 属性
属性 |
必需 |
说明 |
value |
? |
要为 @Entity 或 @MappedSuperclass 指定实体监听程序类的列表,请将 value 设置为实体监听程序类的 Class 数组。 |
?
示例 1-21 显示了如何使用此批注将实体监听程序类 EmployeePersistListener (请参阅