エンティティー・リスナーの例

要件に基づいて、EntityListener を作成できます。 以下にスクリプト例をいくつか示します。

アノテーションを使用するエンティティー・リスナーの例

以下の例では、ライフサイクル・コールバック・メソッド呼び出しとその呼び出し順序を示しています。エンティティー・クラス Employee および EmployeeListener と EmployeeListener2 という 2 つのエンティティー・リスナーが存在しているものとします。
@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) {
        .... 
    }
}
Employee インスタンスで PrePersist イベントが発生した場合、以下のメソッドがこの順序で呼び出されます。
  1. onEmployeePrePersist メソッド
  2. onPersonPrePersist メソッド
  3. onEmployeePrePersist2 メソッド
  4. checkEmployeeID メソッド

XML を使用するエンティティー・リスナーの例

以下の例は、エンティティー記述子 XML ファイルを使用して、エンティティーでエンティティー・リスナーを設定する方法を示したものです。
<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>
エンティティー Employee は、com.ibm.websphere.objectgrid.sample.EmployeeListener エンティティー・リスナー・クラスによって構成されています。このクラスには、2 つのライフサイクル・コールバック・メソッドが定義されています。 onListenerPrePersist メソッドは PrePersist イベントに対応するもので、onListenerPostPersist メソッドは PostPersist イベントに対応するものです。また PrePersist イベントを listen するために、checkEmployeeID メソッドが Employee クラスで構成されています。