Beispiele für Entität-Listener

Sie können Entitäts-Listener nach Ihren Anforderungen schreiben. Es folgen mehrere Beispielscripts.

Beispiel für einen Entitäts-Listener mit Annotationen

Das folgende Beispiel veranschaulicht die Aufrufe von Callback-Methoden für den Lebenszyklus und die Reihenfoge der Aufrufe. Angenommen, es sind eine Entitätsklasse "Employee" und zwei Entitäts-Listener vorhanden: EmployeeListener und 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) {
        .... 
    }
}
Wenn ein PrePersist-Ereignis in einer Employee-Instanz eintritt, werden die folgenden Methoden nacheinander aufgerufen:
  1. onEmployeePrePersist
  2. onPersonPrePersist
  3. onEmployeePrePersist2
  4. checkEmployeeID

Beispiel für einen Entitäts-Listener mit XML

Das folgende Beispiel veranschaulicht, wie Sie einen Entitäts-Listener in einer Entität über die XML-Deskriptordatei der Entität definieren:
<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>
Die Entität "Employee" ist mit einer Entitäts-Listener-Klasse com.ibm.websphere.objectgrid.sample.EmployeeListener definiert, in der zwei Callback-Methoden für den Lebenszyklus definiert sind. Die Methode onListenerPrePersist ist für das Ereignis "PrePersist" bestimmt und die Methode onListenerPostPersist für das Ereignis "PostPersist". Außerdem ist die Methode checkEmployeeID in der Klasse "Employee" definiert, die auf das Ereignis "PrePersist" wartet.