Declares a callback method for the corresponding lifecycle event.
This annotation may be applied to methods of an entity class, a
mapped superclass, or a callback listener class.
The PostInsert callback occurs after a database insert
operation when an entity is inserted via an EntityManager
or EntityAgent. When such a modification is made via an
EntityManager, the database operation might occur at the
time the entity state is modified, or it might occur later when
modifications are flushed to the database. The PostInsert
callback is not triggered when entity data is inserted by execution
of a Query.
The following rules apply to lifecycle callback methods:
- Lifecycle callback methods may throw unchecked/runtime exceptions. A runtime exception thrown by a callback method that executes within a transaction causes that transaction to be marked for rollback if context is joined to the transaction.
- Lifecycle callbacks can invoke JNDI, JDBC, JMS, and enterprise beans.
- A lifecycle callback method may modify the non-relationship state of the entity on which it is invoked.
- In general, the lifecycle method of a portable application should not
invoke
EntityManageror query operations, access other entity instances, or modify relationships within the same persistence context
It is implementation-dependent whether callback methods are invoked before or after the cascading of the lifecycle events to related entities.
- Since:
- 4.0