[hibernate-issues] [JIRA] (HHH-14129) Bidirectional relationship fails to save after updating to 5.4.17

Eduardo Simioni (JIRA) jira at hibernate.atlassian.net
Thu Jul 30 17:38:47 EDT 2020


Eduardo Simioni ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A7476e83f-4b39-4d4a-af62-fe1c3e454b13 ) *created* an issue

Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiOGE2OTQyYzAyODE5NDRkZGI0MDIyZDFjNDRkMTFlNGMiLCJwIjoiaiJ9 ) / Bug ( https://hibernate.atlassian.net/browse/HHH-14129?atlOrigin=eyJpIjoiOGE2OTQyYzAyODE5NDRkZGI0MDIyZDFjNDRkMTFlNGMiLCJwIjoiaiJ9 ) HHH-14129 ( https://hibernate.atlassian.net/browse/HHH-14129?atlOrigin=eyJpIjoiOGE2OTQyYzAyODE5NDRkZGI0MDIyZDFjNDRkMTFlNGMiLCJwIjoiaiJ9 ) Bidirectional relationship fails to save after updating to 5.4.17 ( https://hibernate.atlassian.net/browse/HHH-14129?atlOrigin=eyJpIjoiOGE2OTQyYzAyODE5NDRkZGI0MDIyZDFjNDRkMTFlNGMiLCJwIjoiaiJ9 )

Issue Type: Bug Affects Versions: 5.4.17 Assignee: Unassigned Components: hibernate-core Created: 30/Jul/2020 14:38 PM Environment: H2 Database in MySQL mode was used for the test Priority: Major Reporter: Eduardo Simioni ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A7476e83f-4b39-4d4a-af62-fe1c3e454b13 )

After updating from 5.4.16 to 5.4.17 we had several unit tests failing in one of our projects.
I did some investigation and came up with a minimum scenario and test case that reproduces the problem:

@Entity
public class Child {

   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private Long id;

   @NotNull
   @ManyToOne
   private Parent parent;

   public void setParent(Parent parent) {
       this.parent = parent;
   }
}

@Entity
public class Parent {

   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private Long id;

   @ManyToOne(cascade = CascadeType.ALL)
   private Child child;

   public Parent(Child child) {
       this.child = child;
       this.child.setParent( this );
   }

   public Child getChild() {
       return child;
   }
}

And a test case:

@ExtendWith(SpringExtension.class)
public class ParentChildTest {

   @Test
   @Transactional
   public void save() {
       Parent parent = new Parent( new Child());
       sessionFactory.getCurrentSession().save(parent);
       sessionFactory.getCurrentSession().setHibernateFlushMode(FlushMode.MANUAL);
       sessionFactory.getCurrentSession().flush();
   }

   @Resource
   private SessionFactory sessionFactory;
}

With 5.4.16 the following statements are executed and the test completes successfully

insert into parent (id, child_id) values ( null , ?)
insert into child (id, parent_id) values ( null , ?)
update parent set child_id=? where id=?

With 5.4.17 the result is

DEBUG [SQL] insert into child (id, parent_id) values (null, ?)
WARN  [SqlExceptionHelper] SQL Error: 23502, SQLState: 23502
ERROR [SqlExceptionHelper] NULL not allowed for column "PARENT_ID"; SQL statement:
insert into child (id, parent_id) values (null, ?) [23502-200]

If the @NotNulll annotation is removed the entities are saved without any problem, only in a different order

insert into child (id, parent_id) values ( null , ?)
insert into parent (id, child_id) values ( null , ?)
update child set parent_id=? where id=?

It seems to be related with the fix provided by HHH-10956 ( https://hibernate.atlassian.net/browse/HHH-10956 ) Closed

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

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#100140- sha1:5beb332 )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/hibernate-issues/attachments/20200730/6f5e72f2/attachment.html 


More information about the hibernate-issues mailing list