com.avaje.ebean.event
Interface BeanPersistController

All Known Implementing Classes:
BeanPersistAdapter

public interface BeanPersistController

Used to enhance or override the default bean persistence mechanism.

Note that if want to totally change the finding, you need to use a BeanFinder rather than using postLoad().

Note that getTransaction() on the PersistRequest returns the transaction used for the insert, update, delete or fetch. To explicitly use this same transaction you should use this transaction via methods on EbeanServer.

 
        Object extaBeanToSave = ...;
        Transaction t = request.getTransaction();
        EbeanServer server = request.getEbeanServer();
        server.save(extraBeanToSave, t);
 
 

It is worth noting that BeanPersistListener is different in three main ways from BeanPersistController postXXX methods.

A BeanPersistController is either found automatically via class path search or can be added programmatically via ServerConfiguration.addEntity().


Method Summary
 int getExecutionOrder()
          When there are multiple BeanPersistController's for a given entity type this controls the order in which they are executed.
 boolean isRegisterFor(Class<?> cls)
          Return true if this BeanPersistController should be registered for events on this entity type.
 void postDelete(BeanPersistRequest<?> request)
          Called after the delete was performed.
 void postInsert(BeanPersistRequest<?> request)
          Called after the insert was performed.
 void postLoad(Object bean, Set<String> includedProperties)
          Called after every each bean is fetched and loaded from the database.
 void postUpdate(BeanPersistRequest<?> request)
          Called after the update was performed.
 boolean preDelete(BeanPersistRequest<?> request)
          Prior to the delete perform some action.
 boolean preInsert(BeanPersistRequest<?> request)
          Prior to the insert perform some action.
 boolean preUpdate(BeanPersistRequest<?> request)
          Prior to the update perform some action.
 

Method Detail

getExecutionOrder

int getExecutionOrder()
When there are multiple BeanPersistController's for a given entity type this controls the order in which they are executed.

Lowest values are executed first.

Returns:
an int used to control the order BeanPersistController's are executed

isRegisterFor

boolean isRegisterFor(Class<?> cls)
Return true if this BeanPersistController should be registered for events on this entity type.


preInsert

boolean preInsert(BeanPersistRequest<?> request)
Prior to the insert perform some action. Return true if you want the default functionality to continue.

Return false if you have completely replaced the insert functionality and do not want the default insert to be performed.


preUpdate

boolean preUpdate(BeanPersistRequest<?> request)
Prior to the update perform some action. Return true if you want the default functionality to continue.

Return false if you have completely replaced the update functionality and do not want the default update to be performed.


preDelete

boolean preDelete(BeanPersistRequest<?> request)
Prior to the delete perform some action. Return true if you want the default functionality to continue.

Return false if you have completely replaced the delete functionality and do not want the default delete to be performed.


postInsert

void postInsert(BeanPersistRequest<?> request)
Called after the insert was performed.


postUpdate

void postUpdate(BeanPersistRequest<?> request)
Called after the update was performed.


postDelete

void postDelete(BeanPersistRequest<?> request)
Called after the delete was performed.


postLoad

void postLoad(Object bean,
              Set<String> includedProperties)
Called after every each bean is fetched and loaded from the database. You can override this to derive some information to set to the bean.



Copyright © 2010. All Rights Reserved.