Exemplos do Listener de Entidade

É possível gravar EntityListeners com base em seus requisitos. Veja a seguir vários scripts de exemplo.

Exemplo de EntityListeners Utilizando Anotações

O exemplo a seguir mostra as chamadas de método de retorno de chamada do ciclo de vida e a ordem das chamadas. Assuma que existe uma classe de entidade Employee e dois listeners de entidade: EmployeeListener e EmployeeListener2.
@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) {
        .... 
    }
}
Se um evento PrePersist ocorre em uma instância Employee, os seguintes métodos são chamados em ordem:
  1. Método onEmployeePrePersist
  2. Método onPersonPrePersist
  3. Método onEmployeePrePersist2
  4. Método checkEmployeeID

Exemplo de Listeners de Entidade Utilizando XML

O exemplo a seguir mostra como configurar um listener de entidade em uma entidade utilizando o arquivo XML descritor de entidade:
<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.