Annotation Interface PreRemove


@Target(METHOD) @Retention(RUNTIME) public @interface PreRemove
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.

A @PreRemove callback occurs before the entity being removed is marked as removed in the persistence context. The @PreRemove method is always invoked synchronously during execution of the remove() operation.

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 EntityManager or 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:
1.0