From 0c268878f217aa998fe222c4bae721c06864ff93 Mon Sep 17 00:00:00 2001 From: Davide D'Alto Date: Thu, 30 Oct 2025 14:55:11 +0100 Subject: [PATCH 1/2] [#2666] Fix insert with EmbeddedId and stateless session --- .../reactive/session/impl/ReactiveStatelessSessionImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/session/impl/ReactiveStatelessSessionImpl.java b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/session/impl/ReactiveStatelessSessionImpl.java index b51ad8563..389d979a9 100644 --- a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/session/impl/ReactiveStatelessSessionImpl.java +++ b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/session/impl/ReactiveStatelessSessionImpl.java @@ -441,7 +441,7 @@ private CompletionStage generatedIdBeforeInsert( private CompletionStage generateIdForInsert(Object entity, Generator generator, ReactiveEntityPersister persister) { if ( generator instanceof ReactiveIdentifierGenerator reactiveGenerator ) { - return reactiveGenerator.generate( (ReactiveConnectionSupplier) this, this ) + return reactiveGenerator.generate( (ReactiveConnectionSupplier) this, entity ) .thenApply( id -> castToIdentifierType( id, persister ) ); } From 40152ac9113d5a9b0bc5a05ff798a41a352eeca0 Mon Sep 17 00:00:00 2001 From: Davide D'Alto Date: Thu, 30 Oct 2025 14:57:15 +0100 Subject: [PATCH 2/2] [#2666] Test insert with StatelessSession and emebedded id --- .../java/org/hibernate/reactive/EmbeddedIdTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hibernate-reactive-core/src/test/java/org/hibernate/reactive/EmbeddedIdTest.java b/hibernate-reactive-core/src/test/java/org/hibernate/reactive/EmbeddedIdTest.java index de93e3565..4232f93c0 100644 --- a/hibernate-reactive-core/src/test/java/org/hibernate/reactive/EmbeddedIdTest.java +++ b/hibernate-reactive-core/src/test/java/org/hibernate/reactive/EmbeddedIdTest.java @@ -43,6 +43,19 @@ public void populateDb(VertxTestContext context) { test( context, getMutinySessionFactory().withTransaction( s -> s.persistAll( pizza, schnitzel ) ) ); } + @Test + public void testStatelessInsert(VertxTestContext context) { + LocationId nottingham = new LocationId( "UK", "Nottingham" ); + Delivery mushyPeas = new Delivery( nottingham, "Mushy Peas with mint sauce" ); + test( context, getMutinySessionFactory() + .withStatelessTransaction( s -> s.insert( mushyPeas ) ) + .chain( () -> getMutinySessionFactory() + .withTransaction( s -> s.find( Delivery.class, nottingham ) ) + ) + .invoke( result -> assertThat( result ).isEqualTo( mushyPeas ) ) + ); + } + @Test public void testFindSingleId(VertxTestContext context) { test( context, getMutinySessionFactory().withTransaction( s -> s.find( Delivery.class, verbania ) )