É possível gravar EntityListeners com base em seus requisitos. Veja a seguir vários scripts de exemplo.
@Entity
@EntityListeners({EmployeeListener.class, EmployeeListener2.class})
public class Employee {
@PrePersist
public void checkEmployeeID() {
....
}
}
public class EmployeeListener {
@PrePersist
public void onEmployeePrePersist(Employee e) {
....
}
}
public class PersonListener {
@PrePersist
public void onPersonPrePersist(Object person) {
....
}
}
public class EmployeeListener2 extends PersonListener {
@PrePersist
public void onEmployeePrePersist2(Object employee) {
....
}
}
<entity
class-name="com.ibm.websphere.objectgrid.sample.Employee"
name="Employee" access="FIELD">
<attributes>
<id name="id" />
<basic name="value" />
</attributes>
<entity-listeners>
<entity-listener
class-name="com.ibm.websphere.objectgrid.sample.EmployeeListener">
<pre-persist method-name="onListenerPrePersist" />
<post-persist method-name="onListenerPostPersist" />
</entity-listener>
</entity-listeners>
<pre-persist method-name="checkEmployeeID" />
</entity>
A entidade Employee é configurada com uma
classe de listener de entidade
com.ibm.websphere.objectgrid.sample.EmployeeListener,
que possui dois métodos de retorno de chamada de ciclo de vida definidos.
O método onListenerPrePersist é para o evento PrePersist
e o método onListenerPostPersist é para o evento PostPersist. Além disso, o método checkEmployeeID na classe Employee é
configurado para atender o evento PrePersist.