All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.avaje.ebean.event.BeanPersistController Maven / Gradle / Ivy

There is a newer version: 8.1.1
Show newest version
package com.avaje.ebean.event;

import java.util.Set;

/**
 * Used to enhance or override the default bean persistence mechanism.
 * 

* Note that if want to totally change the finding, you need to use a BeanQueryAdapter * 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. *

    *
  • BeanPersistListener only sees successfully committed events. * BeanController pre and post methods occur before the commit or a rollback and * will see events that are later rolled back
  • *
  • BeanPersistListener runs in a background thread and will not effect the * response time of the actual persist where as BeanController code will
  • *
  • BeanPersistListener can be notified of events from other servers in a * cluster.
  • *
*

*

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

*/ public interface BeanPersistController { /** * 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. *

* * @return an int used to control the order BeanPersistController's are * executed */ int getExecutionOrder(); /** * Return true if this BeanPersistController should be registered for events * on this entity type. */ boolean isRegisterFor(Class cls); /** * 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. *

*/ boolean preInsert(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. *

*/ boolean preUpdate(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. *

*/ boolean preDelete(BeanPersistRequest request); /** * Called after the insert was performed. */ void postInsert(BeanPersistRequest request); /** * Called after the update was performed. */ void postUpdate(BeanPersistRequest request); /** * Called after the delete was performed. */ void postDelete(BeanPersistRequest request); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy