Proper way to cancel / abort a @Transactional method
I have a save method on a @Controller that either saves an object and updates an audit table, or populates an error object and re-renders the edit view. Basically, if you try to make an invalid change to an object, it fills in the error details so you can fix your problem before the save is accepted.