Vedran Prišćan ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=63d101b... ) *updated* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiOGI2MTk2YjU2... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-16096?atlOrigin=eyJpIjoiOGI2MT... ) HHH-16096 ( https://hibernate.atlassian.net/browse/HHH-16096?atlOrigin=eyJpIjoiOGI2MT... ) Passing an ExtendedBeanManager which is notified too late leads to initialization error ( https://hibernate.atlassian.net/browse/HHH-16096?atlOrigin=eyJpIjoiOGI2MT... )
Change By: Vedran Prišćan ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=63d101b... )
Hibernate cannot be successfully initialized in the following scenario:
* ExtendedBeanManager is used and is notified too late (for example on WildFly)
* custom _UserType_ that also implements _DynamicParameterizedType_ is used for entity column.
For example, _JsonBinaryType_ from _io.hypersistence.hypersistence-utils-hibernate-60_ does not work on WildFly 27 with Hibernate 6. @Vlad Mihalcea
Cause: There is a missing null check for _BeanManager_ in _org.hibernate.resource.beans.container.internal.JpaCompliantLifecycleStrategy.NamedBeanImpl.initialize_.
Note: _hibernate.query.startup_check=false_ and _hibernate.delay_cdi_access=true_ do not resolve the issue.
Stack trace when initialization fails:
{code:java}mnc_standalone | Caused by: org.hibernate.resource.beans.container.internal.NotYetReadyException: CDI BeanManager not (yet) ready to use
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.resource.beans.container.internal.JpaCompliantLifecycleStrategy$NamedBeanImpl.initialize(JpaCompliantLifecycleStrategy.java:231)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.resource.beans.container.internal.CdiBeanContainerExtendedAccessImpl$NamedBeanImpl.initialize(CdiBeanContainerExtendedAccessImpl.java:165)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.resource.beans.container.internal.CdiBeanContainerExtendedAccessImpl$NamedBeanImpl.getBeanInstance(CdiBeanContainerExtendedAccessImpl.java:172)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.resource.beans.internal.ManagedBeanRegistryImpl$ContainedBeanManagedBeanAdapter.getBeanInstance(ManagedBeanRegistryImpl.java:155)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.mapping.BasicValue.setExplicitCustomType(BasicValue.java:828)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.cfg.annotations.BasicValueBinder.fillSimpleValue(BasicValueBinder.java:1238)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.cfg.SetBasicValueTypeSecondPass.doSecondPass(SetBasicValueTypeSecondPass.java:26)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1782)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1729)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:300)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1350)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1421)
mnc_standalone | at org.hibernate.jipijapa-hibernate6@27.0.1.Final//org.jboss.as.jpa.hibernate.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:45)
mnc_standalone | at org.jboss.as.jpa@27.0.1.Final//org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:171)
mnc_standalone | ... 10 more
mnc_standalone | Caused by: java.lang.NullPointerException
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.resource.beans.container.internal.JpaCompliantLifecycleStrategy$NamedBeanImpl.initialize(JpaCompliantLifecycleStrategy.java:228)
mnc_standalone | ... 23 more{code}
In [HHH-14914|https://hibernate.atlassian.net/browse/HHH-14914] similar issue was resolved for UserTypes that don't implement DynamicParameterizedType by adding a null check in _JpaCompliantLifecycleStrategy.BeanImpl_.
Solution: add a null check for _BeanManager_ in _org.hibernate.resource.beans.container.internal.JpaCompliantLifecycleStrategy.NamedBeanImpl.initialize_ and use fallback producer if null, equivalent to [HHH-14914|https://github.com/hibernate/hibernate-orm/commit/9fec060fe2c61...] commit.
( https://hibernate.atlassian.net/browse/HHH-16096#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-16096#add-comment?atlOrigin=ey... )
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.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100214- sha1:3d33cb1 )
Vedran Prišćan ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=63d101b... ) *updated* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiMjVjYmY0ZWE2... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-16096?atlOrigin=eyJpIjoiMjVjYm... ) HHH-16096 ( https://hibernate.atlassian.net/browse/HHH-16096?atlOrigin=eyJpIjoiMjVjYm... ) Passing an ExtendedBeanManager which is notified too late leads to initialization error ( https://hibernate.atlassian.net/browse/HHH-16096?atlOrigin=eyJpIjoiMjVjYm... )
Change By: Vedran Prišćan ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=63d101b... )
Hibernate cannot be successfully initialized in the following scenario:
* ExtendedBeanManager is used and is notified too late (for example on WildFly)
* custom _UserType_ that also implements _DynamicParameterizedType_ is used for entity column.
For example, _JsonBinaryType_ from _io.hypersistence.hypersistence-utils-hibernate-60_ does not work on WildFly. @Vlad Mihalcea
Cause: There is a missing null check for _BeanManager_ in _org.hibernate.resource.beans.container.internal.JpaCompliantLifecycleStrategy.NamedBeanImpl.initialize_.
Note: _hibernate.query.startup_check=false_ and _hibernate.delay_cdi_access=true_ do not resolve the issue.
Stack trace when initialization fails:
{code: sh java }
mnc_standalone | Caused by: org.hibernate.resource.beans.container.internal.NotYetReadyException: CDI BeanManager not (yet) ready to use
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.resource.beans.container.internal.JpaCompliantLifecycleStrategy$NamedBeanImpl.initialize(JpaCompliantLifecycleStrategy.java:231)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.resource.beans.container.internal.CdiBeanContainerExtendedAccessImpl$NamedBeanImpl.initialize(CdiBeanContainerExtendedAccessImpl.java:165)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.resource.beans.container.internal.CdiBeanContainerExtendedAccessImpl$NamedBeanImpl.getBeanInstance(CdiBeanContainerExtendedAccessImpl.java:172)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.resource.beans.internal.ManagedBeanRegistryImpl$ContainedBeanManagedBeanAdapter.getBeanInstance(ManagedBeanRegistryImpl.java:155)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.mapping.BasicValue.setExplicitCustomType(BasicValue.java:828)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.cfg.annotations.BasicValueBinder.fillSimpleValue(BasicValueBinder.java:1238)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.cfg.SetBasicValueTypeSecondPass.doSecondPass(SetBasicValueTypeSecondPass.java:26)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1782)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1729)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:300)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1350)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1421)
mnc_standalone | at org.hibernate.jipijapa-hibernate6@27.0.1.Final//org.jboss.as.jpa.hibernate.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:45)
mnc_standalone | at org.jboss.as.jpa@27.0.1.Final//org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:171)
mnc_standalone | ... 10 more
mnc_standalone | Caused by: java.lang.NullPointerException
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.resource.beans.container.internal.JpaCompliantLifecycleStrategy$NamedBeanImpl.initialize(JpaCompliantLifecycleStrategy.java:228)
mnc_standalone | ... 23 more
{code}
In [HHH-14914|https://hibernate.atlassian.net/browse/HHH-14914] similar issue was resolved for UserTypes that don't implement DynamicParameterizedType by adding a null check in _JpaCompliantLifecycleStrategy.BeanImpl_.
Solution: add a null check for _BeanManager_ in _org.hibernate.resource.beans.container.internal.JpaCompliantLifecycleStrategy.NamedBeanImpl.initialize_ and use fallback producer if null, equivalent to [HHH-14914|https://github.com/hibernate/hibernate-orm/commit/9fec060fe2c61...] commit.
( https://hibernate.atlassian.net/browse/HHH-16096#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-16096#add-comment?atlOrigin=ey... )
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.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100214- sha1:3d33cb1 )
Vedran Prišćan ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=63d101b... ) *created* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiOTdiOGFmMmE2... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-16096?atlOrigin=eyJpIjoiOTdiOG... ) HHH-16096 ( https://hibernate.atlassian.net/browse/HHH-16096?atlOrigin=eyJpIjoiOTdiOG... ) Passing an ExtendedBeanManager which is notified too late leads to initialization error ( https://hibernate.atlassian.net/browse/HHH-16096?atlOrigin=eyJpIjoiOTdiOG... )
Issue Type: Bug Affects Versions: 6.0.0, 6.1.6 Assignee: Vedran Prišćan ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=63d101b... ) Created: 25/Jan/2023 02:54 AM Priority: Major Reporter: Vedran Prišćan ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=63d101b... ) Original estimate: 0.5h Remaining Estimate: 0.5h
Hibernate cannot be successfully initialized in the following scenario:
* ExtendedBeanManager is used and is notified too late (for example on WildFly)
* custom UserType that also implements DynamicParameterizedType is used for entity column.
For example, JsonBinaryType from io.hypersistence.hypersistence-utils-hibernate-60 does not work on WildFly. @Vlad Mihalcea
Cause: There is a missing null check for BeanManager in org.hibernate.resource.beans.container.internal.JpaCompliantLifecycleStrategy.NamedBeanImpl.initialize.
Note: hibernate.query.startup_check=false and hibernate.delay_cdi_access=true do not resolve the issue.
Stack trace when initialization fails:
mnc_standalone | Caused by: org.hibernate.resource.beans.container.internal.NotYetReadyException: CDI BeanManager not (yet) ready to use
mnc_standalone | at org.hibernate(a)6.1.5.Final//org.hibernate.resource.beans.container.internal.JpaCompliantLifecycleStrategy $NamedBeanImpl.initialize(JpaCompliantLifecycleStrategy.java:231)
mnc_standalone | at org.hibernate(a)6.1.5.Final//org.hibernate.resource.beans.container.internal.CdiBeanContainerExtendedAccessImpl $NamedBeanImpl.initialize(CdiBeanContainerExtendedAccessImpl.java:165)
mnc_standalone | at org.hibernate(a)6.1.5.Final//org.hibernate.resource.beans.container.internal.CdiBeanContainerExtendedAccessImpl $NamedBeanImpl.getBeanInstance(CdiBeanContainerExtendedAccessImpl.java:172)
mnc_standalone | at org.hibernate(a)6.1.5.Final//org.hibernate.resource.beans.internal.ManagedBeanRegistryImpl $ContainedBeanManagedBeanAdapter.getBeanInstance(ManagedBeanRegistryImpl.java:155)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.mapping.BasicValue.setExplicitCustomType(BasicValue.java:828)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.cfg.annotations.BasicValueBinder.fillSimpleValue(BasicValueBinder.java:1238)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.cfg.SetBasicValueTypeSecondPass.doSecondPass(SetBasicValueTypeSecondPass.java:26)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1782)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1729)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:300)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1350)
mnc_standalone | at org.hibernate@6.1.5.Final//org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1421)
mnc_standalone | at org.hibernate.jipijapa-hibernate6@27.0.1.Final//org.jboss.as.jpa.hibernate.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:45)
mnc_standalone | at org.jboss.as.jpa(a)27.0.1.Final//org.jboss.as.jpa.service.PersistenceUnitServiceImpl $1 $1.run(PersistenceUnitServiceImpl.java:171)
mnc_standalone | ... 10 more
mnc_standalone | Caused by: java.lang.NullPointerException
mnc_standalone | at org.hibernate(a)6.1.5.Final//org.hibernate.resource.beans.container.internal.JpaCompliantLifecycleStrategy $NamedBeanImpl.initialize(JpaCompliantLifecycleStrategy.java:228)
mnc_standalone | ... 23 more
In HHH-14914 ( https://hibernate.atlassian.net/browse/HHH-14914 ) similar issue was resolved for UserTypes that don't implement DynamicParameterizedType by adding a null check in JpaCompliantLifecycleStrategy.BeanImpl.
Solution: add a null check for BeanManager in org.hibernate.resource.beans.container.internal.JpaCompliantLifecycleStrategy.NamedBeanImpl.initialize equivalent to HHH-14914 ( https://github.com/hibernate/hibernate-orm/commit/9fec060fe2c61881080b410... ) commit.
( https://hibernate.atlassian.net/browse/HHH-16096#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-16096#add-comment?atlOrigin=ey... )
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.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100214- sha1:3d33cb1 )
MK ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3... ) *created* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiNWFmYWU2NjMy... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-16095?atlOrigin=eyJpIjoiNWFmYW... ) HHH-16095 ( https://hibernate.atlassian.net/browse/HHH-16095?atlOrigin=eyJpIjoiNWFmYW... ) OptimisticLockType.NONE ignored ( https://hibernate.atlassian.net/browse/HHH-16095?atlOrigin=eyJpIjoiNWFmYW... )
Issue Type: Bug Affects Versions: 6.1.6, 5.6.14 Assignee: Unassigned Attachments: hibernate-test-case-optimistic-locking.zip Components: hibernate-core Created: 25/Jan/2023 02:24 AM Priority: Major Reporter: MK ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3... )
After a discussion ( https://discourse.hibernate.org/t/optimisticlocktype-none-ignored-or-not-... ) beikov asked me to create a Jira issue:
The documentation states the following for the OptimisticLockType:
>
>
>
> NONE
> optimistic locking is disabled even if there is a @Version annotation
> present
>
>
I assumed that means that by default no exception should be thrown when merging a stale object, but it seems the OptimisticLockType.NONE is ignored and a StaleObjectStateException is thrown anyway.
I have created a reproducer using your test example and attached it to the issue.
Here is the code as well:
package org.hibernate.bugs.entities;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.Version;
import org.hibernate.annotations.OptimisticLockType;
import org.hibernate.annotations.OptimisticLocking;
@Entity
@OptimisticLocking(type = OptimisticLockType.NONE)
public class Example {
@Id
@GeneratedValue
private Long id;
private String name;
@Version
private Long rowVersion;
public Long getId() {
return id;
}
public void setId( Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName( String name) {
this.name = name;
}
public Long getRowVersion() {
return rowVersion;
}
public void setRowVersion( Long rowVersion) {
this.rowVersion = rowVersion;
}
}
package org.hibernate.bugs;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.Persistence;
import org.hibernate.bugs.entities.Example;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
/**
* This template demonstrates how to develop a test case for Hibernate ORM, using the Java Persistence API.
*/
public class JPAUnitTestCase {
private EntityManagerFactory entityManagerFactory;
@Before
public void init() {
entityManagerFactory = Persistence.createEntityManagerFactory( "templatePU" );
}
@After
public void destroy() {
entityManagerFactory.close();
}
// Entities are auto-discovered, so just add them anywhere on class- path
// Add your tests, using standard JUnit.
@Test
public void hhh123Test() throws Exception {
EntityManager entityManager = entityManagerFactory.createEntityManager();
// Transaction 1 - create entity
entityManager.getTransaction().begin();
// Create new entity
Example example = new Example();
example.setName( "Example1" );
entityManager.persist(example);
Long exampleId = example.getId();
entityManager.getTransaction().commit();
entityManager.close();
entityManager = entityManagerFactory.createEntityManager();
// Transaction 2 - update entity
entityManager.getTransaction().begin();
Example example2 = entityManager.find(Example.class, exampleId);
example2.setName( "Example2" );
entityManager.merge(example2);
entityManager.getTransaction().commit();
entityManager.close();
entityManager = entityManagerFactory.createEntityManager();
// Transaction 3 - update stale entity
entityManager.getTransaction().begin();
example.setName( "Example3" );
// This should not throw a StaleObjectStateException but does
entityManager.merge(example);
entityManager.getTransaction().commit();
entityManager.close();
}
}
( https://hibernate.atlassian.net/browse/HHH-16095#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-16095#add-comment?atlOrigin=ey... )
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.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100214- sha1:3d33cb1 )
Max ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=639a272... ) *updated* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiMWYwZDkyYmJi... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-15969?atlOrigin=eyJpIjoiMWYwZD... ) HHH-15969 ( https://hibernate.atlassian.net/browse/HHH-15969?atlOrigin=eyJpIjoiMWYwZD... ) Hibernate Migration 5.6 -> 6.1.5 Problem - Inheritance instance create wrong Class ( https://hibernate.atlassian.net/browse/HHH-15969?atlOrigin=eyJpIjoiMWYwZD... )
Change By: Max ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=639a272... )
I updated from SpringBoot 2.7.6 to 3.0.0 to. Hibernate was updated from 5.6.14 to 6.1.5.
Update: 24.1.2023:
I added created a test case :
[https://github.com/hibernate/hibernate-test-case-templates/pull/236|https://github.com/hiber...]
[https://github.com/ git9999999/hibernate-test-case-templates -hhh-15969 /blob/ main hhh-15969 /orm/hibernate-orm-6/src/test/java/org/hibernate/bugs/JPAUnitTestCase.java|https://github.com/git9999999/hibernate-test-case-templates -hhh-15969 /blob/ main hhh-15969 /orm/hibernate-orm-6/src/test/java/org/hibernate/bugs/JPAUnitTestCase.java|smart-link]
but to me it is not clear where i have to put them in the Jira ticket.
I have the following Entities:
*OutboxMessage*
* *User* sentBy
* *Address* sender
*User* (Could be *UserGuestPortal* or *UserMedicalExchange*) (Code see below)
*Address* (Could be *AddressGuestPortal* or *AddressMedicalExchange*)(Code see below)
The Address has a referenz to UserGuestPortal and there is also a reference Back from AddressMedicalExchange to UserGuestPortal. Same applies for MedicalExchange
I can create and persit a OutboxMessage, with sentBy as a UserMedicalExchange and sender AddressMedicalExchange containing a UserMedicalExchange.
When I load the OutboxMessage i see the following error Message MedicalExchange.
{noformat}org.hibernate.PropertyAccessException: Could not set value of type [com.rrr.health.medicalshare.domain.address.AddressGuestPortal] : com.rrr.health.medicalshare.domain.user.UserMedicalExchange.addressMedicalExchange (setter)
at org.hibernate.property.access.spi.SetterFieldImpl.set(SetterFieldImpl.java:79) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:5074) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
at org.hibernate.sql.results.graph.entity.AbstractEntityInitializer.initializeEntity(AbstractEntityInitializer.java:719) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
at org.hibernate.sql.results.graph.entity.AbstractEntityInitializer.initializeInstance(AbstractEntityInitializer.java:652) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
at org.hibernate.sql.results.internal.domain.CircularBiDirectionalFetchImpl$CircularFetchAssembler.assemble(CircularBiDirectionalFetchImpl.java:282) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
at org.hibernate.sql.results.graph.DomainResultAssembler.assemble(DomainResultAssembler.java:33) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
at org.hibernate.metamodel.mapping.EntityMappingType.lambda$extractConcreteTypeStateValues$1(EntityMappingType.java:331) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
{noformat}
When I debug, i see that Hibernate create a UserMedicalExchange instance and load data from the AddressGuestPortal into it, but this is wrong, it should be a AddressMedicalExchange. I did the Test with an empty Database, so there is not AddressGuestPortal anywhere around.
AbstractEntityPersister
!image-20230103-123254.png|width=945,height=666!
Tries to set the wrong Type of Address
!image-20230103-123306.png|width=848,height=459!
I checkout the open Bugs in Hibernate, but it seems i am the only one with this Problem, so i guess it the problem is on my side. :-(
{noformat}@Entity
@Table(name = "T_OUTBOX_MESSAGE")
public class OutboxMessage extends BaseEntity<OutboxMessageId> {
...
@JsonIgnore
@ManyToOne(fetch = FetchType.LAZY, cascade = {PERSIST, MERGE, REFRESH, DETACH})
@JoinColumn(name = "SENDER_ADDRESS_ID")
private Address senderAddress;
...
@JsonIgnore
@OneToOne(fetch = FetchType.LAZY, cascade = {PERSIST, MERGE, REFRESH, DETACH})
@JoinColumn(name = "USER_ID")
private User sentBy;
{noformat}
{noformat}@Entity
@Table(name = "T_USER")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "USER_TYPE", discriminatorType = DiscriminatorType.STRING)
@Slf4j
public abstract class User extends BaseEntity<UserId> implements DisplayNameGetter {
{noformat}
{noformat}@Entity
@DiscriminatorValue("USER_GUEST_PORTAL")
public class UserGuestPortal extends User {
@OneToOne(cascade = {PERSIST, MERGE, REFRESH, DETACH})
@JoinColumn(name = "ADDRESS_ID")
private AddressGuestPortal addressGuestPortal;{noformat}
{noformat}@Entity
@DiscriminatorValue("USER_MEDICAL_EXCHANGE")
public class UserMedicalExchange extends User {
...
@JsonIgnore
@OneToOne(cascade = {PERSIST, MERGE, REFRESH, DETACH})
@JoinColumn(name = "ADDRESS_ID", referencedColumnName = "ADDRESS_ID")
private AddressMedicalExchange addressMedicalExchange;{noformat}
{noformat}@Entity
@Table(name = "T_ADDRESS")
@EntityListeners(AddressEntityListener.class)
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "ADDRESS_TYPE", discriminatorType = DiscriminatorType.STRING)
@Slf4j
public abstract class Address extends BaseEntity<AddressId> implements AddressValidateUserAccess, DisplayNameGetter {{noformat}
{noformat}@Entity
@DiscriminatorValue("GUEST_PORTAL_USER")
public class AddressGuestPortal extends Address {
@JsonIgnore
@OneToOne(mappedBy = "addressGuestPortal", cascade = {PERSIST, MERGE, REFRESH, DETACH})
@JoinColumn(name = "address_id", referencedColumnName = "address_id")
private final UserGuestPortal userGuestPortal = null;{noformat}
{noformat}@Entity
@DiscriminatorValue("MEDICAL_EXCHANGE")
public class AddressMedicalExchange extends Address {
@OneToOne(mappedBy = "addressMedicalExchange")
private UserMedicalExchange userMedicalExchange;{noformat}
( https://hibernate.atlassian.net/browse/HHH-15969#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-15969#add-comment?atlOrigin=ey... )
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.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100214- sha1:01e0849 )
Max ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=639a272... ) *updated* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiODNhZWM0Njhh... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-15969?atlOrigin=eyJpIjoiODNhZW... ) HHH-15969 ( https://hibernate.atlassian.net/browse/HHH-15969?atlOrigin=eyJpIjoiODNhZW... ) Hibernate Migration 5.6 -> 6.1.5 Problem - Inheritance instance create wrong Class ( https://hibernate.atlassian.net/browse/HHH-15969?atlOrigin=eyJpIjoiODNhZW... )
Change By: Max ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=639a272... )
I updated from SpringBoot 2.7.6 to 3.0.0 to. Hibernate was updated from 5.6.14 to 6.1.5.
Update: 24.1.2023: I added a test case [https://github.com/git9999999/hibernate-test-case-templates/blob/main/orm...]
but to me it is not clear where i have to put them in the Jira ticket.
I have the following Entities:
*OutboxMessage*
* *User* sentBy
* *Address* sender
*User* (Could be *UserGuestPortal* or *UserMedicalExchange*) (Code see below)
*Address* (Could be *AddressGuestPortal* or *AddressMedicalExchange*)(Code see below)
The Address has a referenz to UserGuestPortal and there is also a reference Back from AddressMedicalExchange to UserGuestPortal. Same applies for MedicalExchange
I can create and persit a OutboxMessage, with sentBy as a UserMedicalExchange and sender AddressMedicalExchange containing a UserMedicalExchange.
When I load the OutboxMessage i see the following error Message MedicalExchange.
{noformat}org.hibernate.PropertyAccessException: Could not set value of type [com.rrr.health.medicalshare.domain.address.AddressGuestPortal] : com.rrr.health.medicalshare.domain.user.UserMedicalExchange.addressMedicalExchange (setter)
at org.hibernate.property.access.spi.SetterFieldImpl.set(SetterFieldImpl.java:79) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:5074) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
at org.hibernate.sql.results.graph.entity.AbstractEntityInitializer.initializeEntity(AbstractEntityInitializer.java:719) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
at org.hibernate.sql.results.graph.entity.AbstractEntityInitializer.initializeInstance(AbstractEntityInitializer.java:652) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
at org.hibernate.sql.results.internal.domain.CircularBiDirectionalFetchImpl$CircularFetchAssembler.assemble(CircularBiDirectionalFetchImpl.java:282) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
at org.hibernate.sql.results.graph.DomainResultAssembler.assemble(DomainResultAssembler.java:33) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
at org.hibernate.metamodel.mapping.EntityMappingType.lambda$extractConcreteTypeStateValues$1(EntityMappingType.java:331) ~[hibernate-core-6.1.5.Final.jar:6.1.5.Final]
{noformat}
When I debug, i see that Hibernate create a UserMedicalExchange instance and load data from the AddressGuestPortal into it, but this is wrong, it should be a AddressMedicalExchange. I did the Test with an empty Database, so there is not AddressGuestPortal anywhere around.
AbstractEntityPersister
!image-20230103-123254.png|width=945,height=666!
Tries to set the wrong Type of Address
!image-20230103-123306.png|width=848,height=459!
I checkout the open Bugs in Hibernate, but it seems i am the only one with this Problem, so i guess it the problem is on my side. :-(
{noformat}@Entity
@Table(name = "T_OUTBOX_MESSAGE")
public class OutboxMessage extends BaseEntity<OutboxMessageId> {
...
@JsonIgnore
@ManyToOne(fetch = FetchType.LAZY, cascade = {PERSIST, MERGE, REFRESH, DETACH})
@JoinColumn(name = "SENDER_ADDRESS_ID")
private Address senderAddress;
...
@JsonIgnore
@OneToOne(fetch = FetchType.LAZY, cascade = {PERSIST, MERGE, REFRESH, DETACH})
@JoinColumn(name = "USER_ID")
private User sentBy;
{noformat}
{noformat}@Entity
@Table(name = "T_USER")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "USER_TYPE", discriminatorType = DiscriminatorType.STRING)
@Slf4j
public abstract class User extends BaseEntity<UserId> implements DisplayNameGetter {
{noformat}
{noformat}@Entity
@DiscriminatorValue("USER_GUEST_PORTAL")
public class UserGuestPortal extends User {
@OneToOne(cascade = {PERSIST, MERGE, REFRESH, DETACH})
@JoinColumn(name = "ADDRESS_ID")
private AddressGuestPortal addressGuestPortal;{noformat}
{noformat}@Entity
@DiscriminatorValue("USER_MEDICAL_EXCHANGE")
public class UserMedicalExchange extends User {
...
@JsonIgnore
@OneToOne(cascade = {PERSIST, MERGE, REFRESH, DETACH})
@JoinColumn(name = "ADDRESS_ID", referencedColumnName = "ADDRESS_ID")
private AddressMedicalExchange addressMedicalExchange;{noformat}
{noformat}@Entity
@Table(name = "T_ADDRESS")
@EntityListeners(AddressEntityListener.class)
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "ADDRESS_TYPE", discriminatorType = DiscriminatorType.STRING)
@Slf4j
public abstract class Address extends BaseEntity<AddressId> implements AddressValidateUserAccess, DisplayNameGetter {{noformat}
{noformat}@Entity
@DiscriminatorValue("GUEST_PORTAL_USER")
public class AddressGuestPortal extends Address {
@JsonIgnore
@OneToOne(mappedBy = "addressGuestPortal", cascade = {PERSIST, MERGE, REFRESH, DETACH})
@JoinColumn(name = "address_id", referencedColumnName = "address_id")
private final UserGuestPortal userGuestPortal = null;{noformat}
{noformat}@Entity
@DiscriminatorValue("MEDICAL_EXCHANGE")
public class AddressMedicalExchange extends Address {
@OneToOne(mappedBy = "addressMedicalExchange")
private UserMedicalExchange userMedicalExchange;{noformat}
( https://hibernate.atlassian.net/browse/HHH-15969#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-15969#add-comment?atlOrigin=ey... )
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.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100214- sha1:01e0849 )
Yoann Rodière ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... ) *updated* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiZDVjNjI3NmY4... ) / Improvement ( https://hibernate.atlassian.net/browse/HHH-16087?atlOrigin=eyJpIjoiZDVjNj... ) HHH-16087 ( https://hibernate.atlassian.net/browse/HHH-16087?atlOrigin=eyJpIjoiZDVjNj... ) Support @JdbcTypeCode(SqlTypes.VARBINARY) on char[] ( https://hibernate.atlassian.net/browse/HHH-16087?atlOrigin=eyJpIjoiZDVjNj... )
Change By: Yoann Rodière ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... )
{noformat} @Column
@JdbcTypeCode( Types SqlTypes.VARBINARY)
private char[] charArray;{noformat}
The above does not work, one gets an exception upon trying to persist:
{noformat}org.hibernate.HibernateException: Unknown unwrap conversion requested: [C to [B : `org.hibernate.type.descriptor.java.PrimitiveCharacterArrayJavaType` ([C)
at org.hibernate.type.descriptor.java.JavaTypeHelper.unknownUnwrap(JavaTypeHelper.java:17)
at org.hibernate.type.descriptor.java.AbstractClassJavaType.unknownUnwrap(AbstractClassJavaType.java:112)
at org.hibernate.type.descriptor.java.PrimitiveCharacterArrayJavaType.unwrap(PrimitiveCharacterArrayJavaType.java:74)
at org.hibernate.type.descriptor.java.PrimitiveCharacterArrayJavaType.unwrap(PrimitiveCharacterArrayJavaType.java:23)
at org.hibernate.type.descriptor.jdbc.VarbinaryJdbcType$1.doBind(VarbinaryJdbcType.java:100)
at org.hibernate.type.descriptor.jdbc.BasicBinder.bind(BasicBinder.java:61)
at org.hibernate.engine.jdbc.mutation.internal.JdbcValueBindingsImpl.lambda$beforeStatement$0(JdbcValueBindingsImpl.java:87)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.hibernate.engine.jdbc.mutation.spi.BindingGroup.forEachBinding(BindingGroup.java:51)
at org.hibernate.engine.jdbc.mutation.internal.JdbcValueBindingsImpl.beforeStatement(JdbcValueBindingsImpl.java:85)
at org.hibernate.engine.jdbc.mutation.internal.AbstractMutationExecutor.performNonBatchedMutation(AbstractMutationExecutor.java:93)
at org.hibernate.engine.jdbc.mutation.internal.MutationExecutorSingleNonBatched.performNonBatchedOperations(MutationExecutorSingleNonBatched.java:40)
at org.hibernate.engine.jdbc.mutation.internal.AbstractMutationExecutor.execute(AbstractMutationExecutor.java:43)
at org.hibernate.persister.entity.mutation.InsertCoordinator.doStaticInserts(InsertCoordinator.java:162)
at org.hibernate.persister.entity.mutation.InsertCoordinator.coordinateInsert(InsertCoordinator.java:104)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2785)
at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:102)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:616)
at org.hibernate.engine.spi.ActionQueue.lambda$executeActions$1(ActionQueue.java:487)
at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:684)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:484)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:358)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1412)
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:485)
at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:2277)
at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:1942)
at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:426)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:169)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:267)
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:101){noformat}
( https://hibernate.atlassian.net/browse/HHH-16087#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-16087#add-comment?atlOrigin=ey... )
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.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100214- sha1:01e0849 )
Yoann Rodière ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... ) *created* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiMmJmZmEzYzkw... ) / Improvement ( https://hibernate.atlassian.net/browse/HHH-16087?atlOrigin=eyJpIjoiMmJmZm... ) HHH-16087 ( https://hibernate.atlassian.net/browse/HHH-16087?atlOrigin=eyJpIjoiMmJmZm... ) Support @JdbcTypeCode(Types.VARBINARY) on char[] ( https://hibernate.atlassian.net/browse/HHH-16087?atlOrigin=eyJpIjoiMmJmZm... )
Issue Type: Improvement Assignee: Unassigned Created: 24/Jan/2023 03:07 AM Fix Versions: 6.wishlist Priority: Major Reporter: Yoann Rodière ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%... )
@Column
@JdbcTypeCode(Types.VARBINARY)
private char[] charArray;
The above does not work, one gets an exception upon trying to persist:
org.hibernate.HibernateException: Unknown unwrap conversion requested: [C to [B : `org.hibernate.type.descriptor.java.PrimitiveCharacterArrayJavaType` ([C)
at org.hibernate.type.descriptor.java.JavaTypeHelper.unknownUnwrap(JavaTypeHelper.java:17)
at org.hibernate.type.descriptor.java.AbstractClassJavaType.unknownUnwrap(AbstractClassJavaType.java:112)
at org.hibernate.type.descriptor.java.PrimitiveCharacterArrayJavaType.unwrap(PrimitiveCharacterArrayJavaType.java:74)
at org.hibernate.type.descriptor.java.PrimitiveCharacterArrayJavaType.unwrap(PrimitiveCharacterArrayJavaType.java:23)
at org.hibernate.type.descriptor.jdbc.VarbinaryJdbcType$1.doBind(VarbinaryJdbcType.java:100)
at org.hibernate.type.descriptor.jdbc.BasicBinder.bind(BasicBinder.java:61)
at org.hibernate.engine.jdbc.mutation.internal.JdbcValueBindingsImpl.lambda$beforeStatement$0(JdbcValueBindingsImpl.java:87)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.hibernate.engine.jdbc.mutation.spi.BindingGroup.forEachBinding(BindingGroup.java:51)
at org.hibernate.engine.jdbc.mutation.internal.JdbcValueBindingsImpl.beforeStatement(JdbcValueBindingsImpl.java:85)
at org.hibernate.engine.jdbc.mutation.internal.AbstractMutationExecutor.performNonBatchedMutation(AbstractMutationExecutor.java:93)
at org.hibernate.engine.jdbc.mutation.internal.MutationExecutorSingleNonBatched.performNonBatchedOperations(MutationExecutorSingleNonBatched.java:40)
at org.hibernate.engine.jdbc.mutation.internal.AbstractMutationExecutor.execute(AbstractMutationExecutor.java:43)
at org.hibernate.persister.entity.mutation.InsertCoordinator.doStaticInserts(InsertCoordinator.java:162)
at org.hibernate.persister.entity.mutation.InsertCoordinator.coordinateInsert(InsertCoordinator.java:104)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2785)
at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:102)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:616)
at org.hibernate.engine.spi.ActionQueue.lambda$executeActions$1(ActionQueue.java:487)
at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:684)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:484)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:358)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1412)
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:485)
at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:2277)
at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:1942)
at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:426)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:169)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:267)
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:101)
( https://hibernate.atlassian.net/browse/HHH-16087#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-16087#add-comment?atlOrigin=ey... )
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.... ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailN... ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100214- sha1:01e0849 )