Support use of Envers with Auto-commit mode.
--------------------------------------------
Key: HHH-4555
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-4555
Project: Hibernate Core
Issue Type: New Feature
Components: envers
Affects Versions: 3.5.0-Beta-2
Environment: Hibernate 3.5.0-Beta-2
Reporter: Kevin Schmidt
Currently Envers is designed so that it synchronizes with the currently running
transaction in order to know when to commit the inserts into the Audit Tables. This is an
effective strategy for ensuring that the audit information is only saved to the database
if the Transactional Unit of Work which caused the audit data to be created is committed.
This design creates a limitation on Envers such that it cannot persist audit
information unless there is an active transaction. This effectively disables auditing for
anyone modifying data using Hibernate outside of a Hibernate Transaction. Specifically,
if you are using Autocommit = True and manually flushing the Hibernate Session then you
cannot have any of your data audited using Envers.
I am not that well versed with the design of Envers but was hoping this situation
could be detected and avoided. Maybe the audit information could be synchronized on the
flush event rather than when a transaction is committed to the database.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira