Who Created/Who Modified
A common scenario in application is to mark entities with the Id of the user who created that entity and who last modified that entity.
Ebean provides a convenient way to do this via the io.ebean.config.CurrentUserProvider
interface that you can implement.
The interface only specifies a single method Object currentUser();
which will return your typical
entity identifier: Long, String or UUID
Notice that Ebean instantiates the CurrentUserProvider
by means of creating a new instance.
Example Implementation
This implementation does not work, it's just to provide an idea
/**
* Returns the current user typically from a Thread local or similar context.
*/
public class MyCurrentUserProvider implements CurrentUserProvider {
@Override
public Object currentUser() {
// Here you get the user id, from some kind of static
// context access (session information, thread local, etc..)
return someContext.getId();
}
}
Activation
In order to tell ebean which class implements the interface in your application.properties
file we
need to set the following property: ebean.currentUserProvider=org.app.MyCurrentUserProvider