[hibernate-issues] [JIRA] (HHH-14005) Saving envers audit entry causing Lazy Initialization exception for uninitialized Lazy ManyToOne relationship

Jesse McCormick (JIRA) jira at hibernate.atlassian.net
Tue May 12 09:32:18 EDT 2020


Jesse McCormick ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ac0103b8f-9e39-4a12-b6fc-45e220c6615a ) *updated* an issue

Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiOTA5N2Q1MzhlYzQ0NGQ3MWE3NzQyNTg5NmQ1ZmE5OWYiLCJwIjoiaiJ9 ) / Bug ( https://hibernate.atlassian.net/browse/HHH-14005?atlOrigin=eyJpIjoiOTA5N2Q1MzhlYzQ0NGQ3MWE3NzQyNTg5NmQ1ZmE5OWYiLCJwIjoiaiJ9 ) HHH-14005 ( https://hibernate.atlassian.net/browse/HHH-14005?atlOrigin=eyJpIjoiOTA5N2Q1MzhlYzQ0NGQ3MWE3NzQyNTg5NmQ1ZmE5OWYiLCJwIjoiaiJ9 ) Saving envers audit entry causing Lazy Initialization exception for uninitialized Lazy ManyToOne relationship ( https://hibernate.atlassian.net/browse/HHH-14005?atlOrigin=eyJpIjoiOTA5N2Q1MzhlYzQ0NGQ3MWE3NzQyNTg5NmQ1ZmE5OWYiLCJwIjoiaiJ9 )

Change By: Jesse McCormick ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ac0103b8f-9e39-4a12-b6fc-45e220c6615a )

Updating a legacy Hibernate 4 to latest 5.4.15 version resulted in an odd exception when saving the audit record for a record. Turning up the debugging reveals that the actual save of the record appears to proceed correctly, and then when envers begins to save it's audit entry, the Lazy initialization exception occurs. If the lazy “Owner” field is changed to be @NotAudited , the save works.

Save RelatedToTaskEntity cascades to save TaskEntity, which then moves onto the Owner entity where the exception occurs. I looked at [HHH-13191] but toggling the proxy compliance mode didn't seem to effect it. Hibernate 5.4.1 and 5.4.10 work, it appears to have broken in 5.4.11. Looking through the release notes, maybe [HHH-13760] is related?

RelatedToTaskEntity

{quote}
@ Table(name = "RELATED_TO_TASK")
@ Audited
@Entity
public class RelatedToTaskEntity extends BaseDO<Integer> \{

@javax.persistence.Column(name = "RELATED_TO_TASK_ID")
@Id
private Integer relatedToTaskId;

@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
@ManyToOne
@JoinColumn(name = "TASK_CD")
private TaskEntity task;{quote}

TaskEntity

{quote}@Table(name = "TASK")
@Audited
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class TaskEntity extends BaseDO<Long> \{

@Column(name = "TASK_ID")
@Id
private Long id;

@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "OWNER_CD", referencedColumnName = "USER_ID", updatable = false, insertable = false)
private UserInfoEntity owner;

{quote}

UserInfoEntity

{quote}@Audited
@Table(name = "USER_INFO")
@Entity
@Immutable
public class UserInfoEntity extends BaseDO<Integer>

@Column(name = "USER_ID")
@Id
private Integer userId;
{quote}

( https://hibernate.atlassian.net/browse/HHH-14005#add-comment?atlOrigin=eyJpIjoiOTA5N2Q1MzhlYzQ0NGQ3MWE3NzQyNTg5NmQ1ZmE5OWYiLCJwIjoiaiJ9 ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-14005#add-comment?atlOrigin=eyJpIjoiOTA5N2Q1MzhlYzQ0NGQ3MWE3NzQyNTg5NmQ1ZmE5OWYiLCJwIjoiaiJ9 )

Get Jira notifications on your phone! Download the Jira Cloud app for Android ( https://play.google.com/store/apps/details?id=com.atlassian.android.jira.core&referrer=utm_source%3DNotificationLink%26utm_medium%3DEmail ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailNotificationLink&mt=8 ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100126- sha1:dd08494 )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/hibernate-issues/attachments/20200512/dbfbff5e/attachment.html 


More information about the hibernate-issues mailing list