Skip to content

Instantly share code, notes, and snippets.

@sebersole
Last active May 26, 2020 14:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sebersole/2a1c3ac010a166fc91e62b088179678d to your computer and use it in GitHub Desktop.
Save sebersole/2a1c3ac010a166fc91e62b088179678d to your computer and use it in GitHub Desktop.
LoadEventHandler
interface LoadEventHandler {
/**
* Perform the load
*/
Object load(
String entityName,
Object id,
LockMode lockMode,
LoadType loadType,
SessionImplementor session);
}
interface PostLoadEventListener {
void postLoad(
Object loadedInstance,
String entityName,
Object id,
LockMode lockMode,
LoadType loadType,
SessionImplementor session);
}
interface PreLoadEventListener {
void preLoad(
String entityName,
Object id,
LockMode lockMode,
LoadType loadType,
SessionImplementor session);
}
class StandardLoadEventHandler implements LoadEventHandler {
...
List<PreLoadEventListener> preEventListeners = ...;
List<PostLoadEventListener> postEventListeners = ...;
@Override
public Object load(
String entityName,
Object id,
LockMode lockMode,
LoadType loadType,
SessionImplementor session) {
notifyPreEventListeners( ... );
final Object result = ...;
notifyPostEventListeners( result, ... );
return result;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment