diff --git a/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/reactive/Library2.java b/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/reactive/Library2.java index b143149ab130..9db629dc9b90 100644 --- a/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/reactive/Library2.java +++ b/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/reactive/Library2.java @@ -91,6 +91,9 @@ record BookWithAuthor(Book book, Author author) {} @Insert Uni insertAll(Publisher[] publishers); + @Delete + Uni deleteAll(List publishers); + @Save Uni save(Publisher publisher); diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/LifecycleMethod.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/LifecycleMethod.java index 57b76024f150..27fdac7989b8 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/LifecycleMethod.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/LifecycleMethod.java @@ -141,7 +141,7 @@ private void delegateBlockingly(StringBuilder declaration) { .append(sessionName) .append('.') .append("insert"); - argument( declaration, "Multiple" ); + argument( declaration ); declaration .append(";\n") .append("\t\telse\n\t"); @@ -151,28 +151,47 @@ private void delegateBlockingly(StringBuilder declaration) { .append(sessionName) .append('.') .append(operationName); - argument( declaration, "Multiple" ); + argument( declaration ); declaration .append(";\n"); } - private void argument(StringBuilder declaration, String suffix) { + private void argument(StringBuilder declaration) { switch ( parameterKind ) { case LIST: - declaration - .append(suffix) - .append("(") - .append(parameterName) - .append(")"); + if ( isReactive() ) { + declaration + .append("All") + .append("(") + .append(parameterName) + .append(".toArray()") + .append( ")" ); + } + else { + declaration + .append("Multiple") + .append("(") + .append(parameterName) + .append(")"); + } break; case ARRAY: - declaration - .append(suffix) - .append("(") - .append(annotationMetaEntity.importType(LIST)) - .append(".of(") - .append(parameterName) - .append("))"); + if ( isReactive() ) { + declaration + .append("All") + .append("(") + .append(parameterName) + .append(")"); + } + else { + declaration + .append("Multiple") + .append("(") + .append(annotationMetaEntity.importType(LIST)) + .append(".of(") + .append(parameterName) + .append("))"); + } break; default: declaration @@ -212,7 +231,7 @@ private void delegateReactively(StringBuilder declaration) { .append( '.' ) .append( operationName ); // note that there is no upsertAll() method - argument( declaration, "All" ); + argument( declaration ); if ( isGeneratedIdUpsert() ) { declaration .append(')');