Hi! The spec says (3.5.2): "The PreUpdate and PostUpdate callbacks occur before and after the database update operations to entity data respectively."
Does that mean that @PreUpdate should get called only before any real SQL update to the database?, or always if the entity got made dirty (but not get subsequently updated into the database)? The phrase in question is "database update operations to entity data". Is the focus more on 'database' or on 'entity data'? The situation is as following: @Entity @EntityListener(AuditListener.class) public class Person { ... @OneToMany List<Address> addresses; ... public void addAddress(Address a) { addresses.add(a); } } This means that adding an address will render the Person entity dirty and it will subsequently get flushed. But of course there will be no database SQL UPDATE Person get executed but only a SQL INSERT ADDRESS... Shall the EntityListener on the Person entity really get called in this case? PS: I can live with that, but I'd rather clarify the expected behaviour before doing my own 'non-collections dirty' detection for the AuditListener (which sets the modifiedBy and modifiedAt attributes). txs and LieGrue, strub