[JIRA] (HHH-16746) Error call procedure PostgreSQL with REFCURSOR
by Ngo Manh Cuong (JIRA)
Ngo Manh Cuong ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=60f4170... ) *created* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiNTM5NzM5YjQ0... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-16746?atlOrigin=eyJpIjoiNTM5Nz... ) HHH-16746 ( https://hibernate.atlassian.net/browse/HHH-16746?atlOrigin=eyJpIjoiNTM5Nz... ) Error call procedure PostgreSQL with REFCURSOR ( https://hibernate.atlassian.net/browse/HHH-16746?atlOrigin=eyJpIjoiNTM5Nz... )
Issue Type: Bug Affects Versions: 6.2.4 Assignee: Unassigned Created: 04/Jun/2023 20:25 PM Environment: Windows 10
OpenJDK 17.0.2
PostgreSQL 12 Priority: Major Reporter: Ngo Manh Cuong ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=60f4170... )
persistence.xml
<persistence xmlns= "http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version= "2.1" >
<persistence-unit name= "orientsoftware" >
<description>
Persistence unit for Hibernate User Guide
</description>
<provider> org.hibernate.jpa.HibernatePersistenceProvider </provider>
<class> org.hibernate.documentation.userguide.Document </class>
<properties>
<property name= "jakarta.persistence.jdbc.driver" value= "org.postgresql.Driver" />
<property name= "jakarta.persistence.jdbc.url" value= "jdbc:postgresql://localhost:5432/test" />
<property name= "jakarta.persistence.jdbc.user" value= "postgres" />
<property name= "jakarta.persistence.jdbc.password" value= "postgres" />
<property name= "hibernate.show_sql" value= "true" />
<property name= "hibernate.hbm2ddl.auto" value= "create" />
<property name= "hibernate.default_schema" value= "test" />
</properties>
</persistence-unit>
</persistence>
Hibernate.java
package hibernate.models;
import jakarta.persistence.Access;
import jakarta.persistence.AccessType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.FieldDefaults;
@Entity
@Table(name = "hibernate" , schema = "test" )
@Access(AccessType.FIELD)
@FieldDefaults(level = AccessLevel.PRIVATE)
@Getter
@Setter
public class Hibernate {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id" , nullable = false )
Long id;
@Column(name = "name" )
String name;
}
pom.xml
<project xmlns= "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" >
<modelVersion> 4.0.0 </modelVersion>
<groupId> com.orientsoftware </groupId>
<artifactId> hibernate </artifactId>
<version> 0.0.1-SNAPSHOT </version>
<properties>
<hib.version> 6.2.4.Final </hib.version>
</properties>
<build>
<finalName> hibernate </finalName>
<plugins>
<plugin>
<groupId> org.apache.maven.plugins </groupId>
<artifactId> maven-compiler-plugin </artifactId>
<version> 3.8.1 </version>
<configuration>
<release> 17 </release>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId> org.hibernate.orm </groupId>
<artifactId> hibernate-core </artifactId>
<version> ${hib.version} </version>
</dependency>
<dependency>
<groupId> org.hibernate.orm </groupId>
<artifactId> hibernate-c3p0 </artifactId>
<version> ${hib.version} </version>
</dependency>
<dependency>
<groupId> org.hibernate.orm </groupId>
<artifactId> hibernate-envers </artifactId>
<version> ${hib.version} </version>
</dependency>
<!--
https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-vali... -->
<dependency>
<groupId> org.hibernate.validator </groupId>
<artifactId> hibernate-validator </artifactId>
<version> 8.0.0.Final </version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId> org.projectlombok </groupId>
<artifactId> lombok </artifactId>
<version> 1.18.24 </version>
</dependency>
<dependency>
<groupId> org.postgresql </groupId>
<artifactId> postgresql </artifactId>
<version> 42.5.4 </version>
</dependency>
</dependencies>
</project>
App.java
package hibernate;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.procedure.ProcedureCall;
import org.hibernate.result.Output;
import org.hibernate.result.ResultSetOutput;
import hibernate.models.Hibernate;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.ParameterMode;
import jakarta.persistence.Persistence;
public class App {
public static void main( String [] args) {
EntityManagerFactory factory = Persistence.createEntityManagerFactory( "orientsoftware" );
EntityManager entityManager = factory.createEntityManager();
entityManager.find(Hibernate.class, 1l);
Session session = entityManager.unwrap(Session.class);
ProcedureCall sp = session.createStoredProcedureCall( "test.test_function" );
sp.registerParameter(1, void.class, ParameterMode.REF_CURSOR);
sp.registerParameter(2, String.class, ParameterMode.IN);
sp.setParameter(2, "name" );
Output output = sp.getOutputs().getCurrent();
List< Object []> resultList = ((ResultSetOutput) output).getResultList();
Iterator itr = resultList.iterator();
System.out.println(itr.toString());
session.close();
entityManager.close();
}
}
script database
CREATE OR REPLACE FUNCTION test.test_function(
param text )
RETURNS refcursor
LANGUAGE 'plpgsql'
COST 100
VOLATILE PARALLEL UNSAFE
AS $BODY$
DECLARE
resultSet REFCURSOR;
BEGIN
select * from test.hibernate
where name like param;
RETURN resultSet;
END ;
$BODY$;
ALTER FUNCTION test.test_function( text )
OWNER TO postgres;
Output:
Exception in thread "main" org.hibernate.exception.SQLGrammarException: Error calling CallableStatement.getMoreResults [ERROR: test.test_function(character varying) is not a procedure
Hint: To call a function, use SELECT.
Position: 6] [com.mchange.v2.c3p0.impl.NewProxyCallableStatement@5efeb117 [wrapping: call test.test_function(NULL,'name')]]
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:89)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:56)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
at org.hibernate.result.internal.OutputsImpl.convert(OutputsImpl.java:96)
at org.hibernate.result.internal.OutputsImpl.executeStatement(OutputsImpl.java:73)
at org.hibernate.procedure.internal.ProcedureOutputsImpl.<init>(ProcedureOutputsImpl.java:49)
at org.hibernate.procedure.internal.ProcedureCallImpl.buildOutputs(ProcedureCallImpl.java:710)
at org.hibernate.procedure.internal.ProcedureCallImpl.getOutputs(ProcedureCallImpl.java:594)
at hibernate.App.main(App.java:33)
Caused by: org.postgresql.util.PSQLException: ERROR: test.test_function(character varying) is not a procedure
Hint: To call a function, use SELECT.
Position: 6
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2676)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2366)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:356)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:496)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:413)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:190)
at org.postgresql.jdbc.PgCallableStatement.executeWithFlags(PgCallableStatement.java:84)
at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:177)
at com.mchange.v2.c3p0.impl.NewProxyCallableStatement.execute(NewProxyCallableStatement.java:3214)
at org.hibernate.result.internal.OutputsImpl.executeStatement(OutputsImpl.java:69)
... 4 more
( https://hibernate.atlassian.net/browse/HHH-16746#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-16746#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#100225- sha1:e03cc87 )
2 years, 10 months
[JIRA] (HHH-16745) TransientObjectException when loading versioned entity from second-level cache with @OneToOne LAZY mapping
by Benedikt Biallowons (JIRA)
Benedikt Biallowons ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=712020%... ) *updated* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiYWIyOTNjNTA2... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-16745?atlOrigin=eyJpIjoiYWIyOT... ) HHH-16745 ( https://hibernate.atlassian.net/browse/HHH-16745?atlOrigin=eyJpIjoiYWIyOT... ) TransientObjectException when loading versioned entity from second-level cache with @OneToOne LAZY mapping ( https://hibernate.atlassian.net/browse/HHH-16745?atlOrigin=eyJpIjoiYWIyOT... )
Change By: Benedikt Biallowons ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=712020%... )
While upgrading from Hibernate ORM 5.3.28.Final to 6.2.1.Final (due to an application server update from Wildfly 26.1.3 to Wildfly 28.0.1) we encountered following error when fetching data from our database / 2nd Level Cache:
{code:none}Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: tld.domain.Model
at org.hibernate@6.2.1.Final//org.hibernate.engine.internal.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:346)
at org.hibernate@6.2.1.Final//org.hibernate.type.ManyToOneType.disassemble(ManyToOneType.java:171)
at org.hibernate@6.2.1.Final//org.hibernate.cache.spi.entry.CacheEntryHelper.disassemble(CacheEntryHelper.java:48)
at org.hibernate(a)6.2.1.Final//org.hibernate.cache.spi.entry.StandardCacheEntryImpl.<init>(StandardCacheEntryImpl.java:50)
at org.hibernate@6.2.1.Final//org.hibernate.persister.entity.AbstractEntityPersister$StandardCacheEntryHelper.buildCacheEntry(AbstractEntityPersister.java:4456)
at org.hibernate@6.2.1.Final//org.hibernate.persister.entity.AbstractEntityPersister.buildCacheEntry(AbstractEntityPersister.java:3604)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.graph.entity.AbstractEntityInitializer.putInCache(AbstractEntityInitializer.java:939)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.graph.entity.AbstractEntityInitializer.updateCaches(AbstractEntityInitializer.java:873)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.graph.entity.AbstractEntityInitializer.finishUpRow(AbstractEntityInitializer.java:1140)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.internal.InitializersList.finishUpRow(InitializersList.java:64)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.internal.StandardRowReader.afterRow(StandardRowReader.java:104)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.internal.StandardRowReader.readRow(StandardRowReader.java:97)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:179)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:33)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:362)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:168)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.list(JdbcSelectExecutorStandardImpl.java:93)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:31)
at org.hibernate@6.2.1.Final//org.hibernate.loader.ast.internal.SingleUniqueKeyEntityLoaderStandard.load(SingleUniqueKeyEntityLoaderStandard.java:98)
at org.hibernate@6.2.1.Final//org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:2460)
at org.hibernate@6.2.1.Final//org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:2452)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.graph.entity.internal.EntitySelectFetchByUniqueKeyInitializer.initializeInstance(EntitySelectFetchByUniqueKeyInitializer.java:85)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.internal.InitializersList.initializeInstance(InitializersList.java:70)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.internal.StandardRowReader.coordinateInitializers(StandardRowReader.java:111)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.internal.StandardRowReader.readRow(StandardRowReader.java:87)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:199)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:33)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:362)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:168)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.list(JdbcSelectExecutorStandardImpl.java:93)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:31)
at org.hibernate@6.2.1.Final//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$0(ConcreteSqmSelectQueryPlan.java:109)
at org.hibernate@6.2.1.Final//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:302)
at org.hibernate@6.2.1.Final//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:243)
at org.hibernate@6.2.1.Final//org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:521)
at org.hibernate@6.2.1.Final//org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:367{code}
After digging deeper we found out that the following that the combination:
* Second Level Caching enabled
* Optimistic locking using the @Version annotation
* @OneToOne{FetchType.LAZY) on a one-to-one bidrectional (on the property of the referenced entity)
is causing this TransientObjectException while trying to fetch data.
This issue seems to be close to [https://hibernate.atlassian.net/browse/HHH-16126|https://hibernate.atlass...] .
We validated that the issue still exists in: 6.2.4, 6.2.3 and 6.2.2.
A Pull-Request for reproducing the error will be attached shortly.
( https://hibernate.atlassian.net/browse/HHH-16745#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-16745#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#100225- sha1:e03cc87 )
2 years, 10 months
[JIRA] (HHH-16745) TransientObjectException when loading versioned entity from second-level cache with @OneToOne LAZY mapping
by Benedikt Biallowons (JIRA)
Benedikt Biallowons ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=712020%... ) *created* an issue
Hibernate ORM ( https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiNGYyNjM5N2Ni... ) / Bug ( https://hibernate.atlassian.net/browse/HHH-16745?atlOrigin=eyJpIjoiNGYyNj... ) HHH-16745 ( https://hibernate.atlassian.net/browse/HHH-16745?atlOrigin=eyJpIjoiNGYyNj... ) TransientObjectException when loading versioned entity from second-level cache with @OneToOne LAZY mapping ( https://hibernate.atlassian.net/browse/HHH-16745?atlOrigin=eyJpIjoiNGYyNj... )
Issue Type: Bug Affects Versions: 6.2.1, 6.2.2, 6.2.3, 6.2.4 Assignee: Unassigned Created: 04/Jun/2023 08:40 AM Environment:
Priority: Major Reporter: Benedikt Biallowons ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=712020%... )
While upgrading from Hibernate ORM 5.3.28.Final to 6.2.1.Final (due to an application server update from Wildfly 26.1.3 to Wildfly 28.0.1) we encountered following error when fetching data from our database / 2nd Level Cache:
Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: tld.domain.Model
at org.hibernate@6.2.1.Final//org.hibernate.engine.internal.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:346)
at org.hibernate@6.2.1.Final//org.hibernate.type.ManyToOneType.disassemble(ManyToOneType.java:171)
at org.hibernate@6.2.1.Final//org.hibernate.cache.spi.entry.CacheEntryHelper.disassemble(CacheEntryHelper.java:48)
at org.hibernate(a)6.2.1.Final//org.hibernate.cache.spi.entry.StandardCacheEntryImpl.<init>(StandardCacheEntryImpl.java:50)
at org.hibernate@6.2.1.Final//org.hibernate.persister.entity.AbstractEntityPersister$StandardCacheEntryHelper.buildCacheEntry(AbstractEntityPersister.java:4456)
at org.hibernate@6.2.1.Final//org.hibernate.persister.entity.AbstractEntityPersister.buildCacheEntry(AbstractEntityPersister.java:3604)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.graph.entity.AbstractEntityInitializer.putInCache(AbstractEntityInitializer.java:939)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.graph.entity.AbstractEntityInitializer.updateCaches(AbstractEntityInitializer.java:873)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.graph.entity.AbstractEntityInitializer.finishUpRow(AbstractEntityInitializer.java:1140)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.internal.InitializersList.finishUpRow(InitializersList.java:64)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.internal.StandardRowReader.afterRow(StandardRowReader.java:104)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.internal.StandardRowReader.readRow(StandardRowReader.java:97)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:179)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:33)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:362)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:168)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.list(JdbcSelectExecutorStandardImpl.java:93)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:31)
at org.hibernate@6.2.1.Final//org.hibernate.loader.ast.internal.SingleUniqueKeyEntityLoaderStandard.load(SingleUniqueKeyEntityLoaderStandard.java:98)
at org.hibernate@6.2.1.Final//org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:2460)
at org.hibernate@6.2.1.Final//org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:2452)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.graph.entity.internal.EntitySelectFetchByUniqueKeyInitializer.initializeInstance(EntitySelectFetchByUniqueKeyInitializer.java:85)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.internal.InitializersList.initializeInstance(InitializersList.java:70)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.internal.StandardRowReader.coordinateInitializers(StandardRowReader.java:111)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.internal.StandardRowReader.readRow(StandardRowReader.java:87)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:199)
at org.hibernate@6.2.1.Final//org.hibernate.sql.results.spi.ListResultsConsumer.consume(ListResultsConsumer.java:33)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery(JdbcSelectExecutorStandardImpl.java:362)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery(JdbcSelectExecutorStandardImpl.java:168)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.list(JdbcSelectExecutorStandardImpl.java:93)
at org.hibernate@6.2.1.Final//org.hibernate.sql.exec.spi.JdbcSelectExecutor.list(JdbcSelectExecutor.java:31)
at org.hibernate@6.2.1.Final//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$0(ConcreteSqmSelectQueryPlan.java:109)
at org.hibernate@6.2.1.Final//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:302)
at org.hibernate@6.2.1.Final//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:243)
at org.hibernate@6.2.1.Final//org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:521)
at org.hibernate@6.2.1.Final//org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:367
After digging deeper we found out that the following that the combination:
* Second Level Caching enabled
* Optimistic locking using the @Version annotation
* @OneToOne{FetchType.LAZY) on a one-to-one bidrectional (on the property of the referenced entity)
is causing this TransientObjectException while trying to fetch data.
This issue seems to be close to https://hibernate.atlassian.net/browse/HHH-16126.
We validated that the issue still exists in: 6.2.4, 6.2.3 and 6.2.2.
A Pull-Request for reproducing the error will be attached shortly.
( https://hibernate.atlassian.net/browse/HHH-16745#add-comment?atlOrigin=ey... ) Add Comment ( https://hibernate.atlassian.net/browse/HHH-16745#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#100225- sha1:e03cc87 )
2 years, 10 months