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 69e5835a9a15..b143149ab130 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 @@ -23,6 +23,7 @@ import java.time.LocalDate; import java.util.List; +import java.util.Optional; @Repository public interface Library2 { @@ -32,6 +33,9 @@ public interface Library2 { @Find Uni book(String isbn); + @Find + Uni> maybeBook(String isbn); + @Find Uni> books(@By("isbn") List isbns); diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/IdFinderMethod.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/IdFinderMethod.java index adca42ca1683..6f50f61366ef 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/IdFinderMethod.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/IdFinderMethod.java @@ -85,6 +85,13 @@ public String getAttributeDeclarationString() { private void throwIfNull(StringBuilder declaration) { if (containerType != null) { + if ( isReactive() ) { + declaration + .append("\n\t\t\t.map(") + .append(annotationMetaEntity.importType(containerType)) + .append("::") + .append("ofNullable"); + } declaration .append(')'); } @@ -157,7 +164,7 @@ private void varOrReturn(StringBuilder declaration) { declaration .append("\ttry {\n\t"); } - if (containerType != null) { + if (containerType != null && !isReactive()) { declaration .append("\treturn ") .append(annotationMetaEntity.staticImport(containerType, "ofNullable"))