In Hibernate, implementing a PostUpdateEventListener allows you to plug into Hibernate's workflow and gives you the opportunity to inspect and compare the old and new values of an Entity's properties as it is being saved (PostUpdateEvent has methods getOldState() and getState() that return an array of these values). For standard properties, this works just fine. However, where one of those properties is a Collection whose contents have changed, this is of no help: the "old value" and "new value" are both just the same reference to the Collection (since the Collection itself has not changed, just its contents). This means you can only see the latest i.e. "new" contents of that Collection.
Anyone know if there is a way to determine how the elements of a Collection owned by an Entity have changed at this point in the workflow?