I suggest registering an interceptor that overwrites the findDirty Method. From then on, the is a few things I can imagine. Judge yourself which one helps and which one is too dirty :-)
- first idea: Just use it for logging debug information. Compare the current and previous state and log it
- second idea: My guess is that the collection is considered dirty, maybe because of ordering.... who knows? So maybe make a custom implementation to check for changes
- third idea: Maybe you could just not go the route of @PrePersist callback method, but actually set the audit fiels in the interceptor. If it's dirty, then set the 2 fields.
would love to hear feedback if the third idea works.