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 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 Database.
Object extaBeanToSave = ...; Transaction t = request.getTransaction(); Database server = request.getEbeanServer(); database.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 DatabaseConfig.add().
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description 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
postSoftDelete(BeanPersistRequest<?> request)
Called after the soft delete was performed.void
postUpdate(BeanPersistRequest<?> request)
Called after the update was performed.void
preDelete(BeanDeleteIdRequest request)
Prior to a delete by id perform some action.boolean
preDelete(BeanPersistRequest<?> request)
Prior to the delete perform some action.boolean
preInsert(BeanPersistRequest<?> request)
Prior to the insert perform some action.boolean
preSoftDelete(BeanPersistRequest<?> request)
Prior to a soft delete 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.
-
preSoftDelete
boolean preSoftDelete(BeanPersistRequest<?> request)
Prior to a soft delete perform some action. Return true if you want the default functionality to continue.
-
preDelete
void preDelete(BeanDeleteIdRequest request)
Prior to a delete by id perform some action.
-
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.
-
postSoftDelete
void postSoftDelete(BeanPersistRequest<?> request)
Called after the soft delete was performed.
-
-