@@ -511,9 +511,7 @@ public CompletionStage<Void> reactiveUpsert(String entityName, Object entity) {
511
511
Object id = persister .getIdentifier ( entity , this );
512
512
Boolean knownTransient = persister .isTransient ( entity , this );
513
513
if ( knownTransient != null && knownTransient ) {
514
- throw new TransientObjectException (
515
- "Object passed to upsert() has a null identifier: "
516
- + persister .getEntityName () );
514
+ throw new TransientObjectException ( "Object passed to upsert() has a null identifier: " + persister .getEntityName () );
517
515
// final Generator generator = persister.getGenerator();
518
516
// if ( !generator.generatedOnExecution() ) {
519
517
// id = ( (BeforeExecutionGenerator) generator).generate( this, entity, null, INSERT );
@@ -542,6 +540,16 @@ public CompletionStage<Void> reactiveUpsert(String entityName, Object entity) {
542
540
.mergeReactive ( id , state , null , false , null , oldVersion , entity , null , this );
543
541
}
544
542
543
+ @ Override
544
+ public CompletionStage <Void > reactiveUpsertAll (int batchSize , Object ... entities ) {
545
+ final Integer jdbcBatchSize = batchingHelperSession .getJdbcBatchSize ();
546
+ batchingHelperSession .setJdbcBatchSize ( batchSize );
547
+ final ReactiveConnection connection = batchingConnection ( batchSize );
548
+ return loop ( entities , batchingHelperSession ::reactiveUpsert )
549
+ .thenCompose ( v -> connection .executeBatch () )
550
+ .whenComplete ( (v , throwable ) -> batchingHelperSession .setJdbcBatchSize ( jdbcBatchSize ) );
551
+ }
552
+
545
553
@ Override
546
554
public CompletionStage <Void > reactiveInsertAll (Object ... entities ) {
547
555
return loop ( entities , batchingHelperSession ::reactiveInsert )
0 commit comments