Attempted to assign id from null one-to-one property

Description

catch very unexpected exception while updgrading hibernate version 5.2.12 -> 5.2.15
in scenario when
there are object whith null OneToOne property in database
and it is updated with object with non null OneToOne property.

i create test project to reproduce this case - https://github.com/evg345/spring-data-hibernate-bug

Caused by: org.hibernate.id.IdentifierGenerationException: attempted to assign id from null one-to-one property [models.Secunda.parent] at org.hibernate.id.ForeignGenerator.generate(ForeignGenerator.java:90) at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:105) at org.hibernate.jpa.event.internal.core.JpaMergeEventListener.saveWithGeneratedId(JpaMergeEventListener.java:56) at org.hibernate.event.internal.DefaultMergeEventListener.saveTransientEntity(DefaultMergeEventListener.java:255) at org.hibernate.event.internal.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:235) at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:173) at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:905) at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:875) at org.hibernate.engine.spi.CascadingActions$6.cascade(CascadingActions.java:261) at org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:467) at org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:392) at org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:193) at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:126) at org.hibernate.event.internal.DefaultMergeEventListener.cascadeOnMerge(DefaultMergeEventListener.java:461) at org.hibernate.event.internal.DefaultMergeEventListener.entityIsDetached(DefaultMergeEventListener.java:327) at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:170) at org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:69) at org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:883) at org.hibernate.internal.SessionImpl.merge(SessionImpl.java:869)

it seems that some versions of Hibernate are broken

  • 5.2.12.Final = GOOD

  • 5.2.13.Final = GOOD

  • 5.2.14.Final = Exception

  • 5.2.15.Final = Exception

  • 5.2.16.Final = Exception

i create test to reproduce https://github.com/evg345/hibernate-test-case-templates/blob/master/orm/hibernate-orm-5/src/test/java/org/hibernate/bugs/HHH12436/OneToOnePropertyTestCase.java
and make pulll request also

Attachments

1
  • 28 Mar 2018, 02:27 PM

Activity

Show:

Former user July 15, 2021 at 10:30 PM

Fixed in 5.3 branch as well.

Former user April 28, 2021 at 6:06 PM

, if you’re seeing this issue in 5.4.x, then please open a new issue and provide a test that reproduces the issue.

Avinash Tiwari April 15, 2021 at 9:00 AM

m getting same exception oin hibernate-code 5.4.30.Final. Is anybody found soultion for this?

Former user February 1, 2021 at 5:55 PM

, you are correct this.

I am in the middle of setting up test cases, but I've had to work on other things. I should be able to get back to this soon.

Jan-Willem Gmelig Meyling January 30, 2021 at 1:22 PM

That makes sense, the issue was introduced in 5.2 and is introduced by a side-effect of HHH-9460, which also landed in 5.3.0. I belive this change is intended to fix it: https://github.com/hibernate/hibernate-orm/pull/3488 , but the fix is not yet complete. Perhaps someone can contribute a test case and see confirm whether this issue is indeed fixed by the PR.

Fixed

Details

Assignee

Reporter

Labels

Worked in

Fix versions

Affects versions

Priority

Created March 27, 2018 at 6:14 AM
Updated July 15, 2021 at 10:30 PM
Resolved July 15, 2021 at 10:30 PM