Interceptors work similarly to events, they enable you to inject call back operations when interacting with the session. Creating and using interceptors is simpler than events. Furthermore, you can enable interceptors on a specific session, whereas events are registered globally and will apply to all sessions. But you can also enable an interceptor on a session factory, so it applies to all sessions.
Hibernate defines an interface called
org.hibernate.Interceptor that you would need to implement. But, it also provides an empty implementation that you can extend so that you won't need to implement every method of the interface.
Most of the call back methods on Interceptor return a Boolean data type to indicate whether the method has changed the state of the entity (the state of the entity is the disassembled version of the entity properties).
When working with interceptors, you may modify the state of the entity. In that case, you shouldn't modify the entity object itself if it...