要件に基づいて、EntityListener を作成できます。 以下にスクリプト例をいくつか示します。
@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>
エンティティー Employee は、com.ibm.websphere.objectgrid.sample.EmployeeListener エンティティー・リスナー・クラスによって構成されています。このクラスには、2 つのライフサイクル・コールバック・メソッドが定義されています。
onListenerPrePersist メソッドは PrePersist イベントに対応するもので、onListenerPostPersist メソッドは PostPersist イベントに対応するものです。また PrePersist イベントを listen するために、checkEmployeeID メソッドが Employee クラスで構成されています。