I was able to create a standalone application which demonstrates the root issue(s). Attached usermgmt.test.sources.jar.
The notable class to examine/execute is hhh8320.CascadeTest. The hhh8320.entity package contains the annotated entities: User, UserGroup, UserGroupMember, and AuditRevision (revinfo).
CascadeTest shows two issues which may be related.
CascadeTest#testCascadeDeleteUserGroupMemberOnUserGroupDeletion()
1. Create user, user group, and user group member associating a user to the user group. 2. Then delete user group which cascade deletes the associated user group member. Envers attempts to insert a DELETE revision in the user group member audit table without defining the required entity id field. A constraint violation occurs.
CascadeTest#testCascadeDeleteUserGroupMemberOnUserDeletion()
1. Create user, user group, and user group member associating a user to the user group. 2. Then delete user which cascade deletes the associated user group member. No error occurs. Envers inserts a DELETE revision for the user audit table which is expected. However, Envers does not insert a DELETE revision for the cascade deleted user group member table.
|