I'm trying to figure out how I can use a Listener in Hibernate to tell me the state of an object just before the object is updated in the database. Let's say I have an object "Car" with an attribute "color". I've created a listener which extends DefaultSaveOrUpdateEventListener where I override the onSaveOrUpdate() method:
Code:
public void onSaveOrUpdate(SaveOrUpdateEvent event) throws HibernateException {
if (event.getObject() instanceof Car) {
Car car = (Car) event.getObject();
System.out.println("Saving a car with new color: " + car.getColor());
// Problem: what color-value does the car have right now in the database?
}
}
The problem is that I cannot figure out how what the "old" color-value of the Car object is. Is this even possible? Maybe using an Interceptor instead? I ultimately hope to be able to record changes like when a Car changes color from, say, "red" to "blue"