[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-5315?page=c...
]
Matthew B. Jones updated HHH-5315:
----------------------------------
Attachment: jta_compatability.txt
Attached is an Eclipse workspace patch for envers trunk. This resolves the issue with
using Envers within the context of JTA. Yes, adding em.flush() everywhere in your business
logic does avoid the issue, but this patch reverts Envers back to some earlier code in the
way it subscribes for Hibernate events.
AuditJoinTable rows are no longer flushed to the database
---------------------------------------------------------
Key: HHH-5315
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-5315
Project: Hibernate Core
Issue Type: Bug
Components: envers
Affects Versions: 3.5.1, 3.5.2
Environment: JPA with extended persistence context
Reporter: Erik-Berndt Scheper
Assignee: Adam Warski
Priority: Minor
Attachments: HHH-5315-Eclipse-project-testcase.zip,
HHH-5315-envers-testcase-does-not-fail.patch, jta_compatability.txt
In Hibernate core 3.5.1 issue HHH-3543 was fixed by using
BeforeTransactionCompletionProcess instead of a transaction synchronization. I have found
that since this change, rows in AuditJoinTables are no longer flushed to the database.
(Envers 3.5.0 final works fine).
I can work around the issue by adding a manual entityManager.flush() or by setting the
flushmode to manual.
I have noticed that AuditProcess.java already executes a flush() statement, but this does
not seem to suffice. I believe this is caused by the fact that during the
doBeforeTransactionCompletion() extra WorkUnits are added to the hibernate ActionQueue
(PersistentCollectionChangeWorkUnit) which process the AuditJoinTables.
--
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