diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/ClassWriter.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/ClassWriter.java index eba11c574cda..62e9e72a9101 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/ClassWriter.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/ClassWriter.java @@ -80,6 +80,8 @@ private static StringBuffer generateBody(Metamodel entity, Context context) { final StringWriter sw = new StringWriter(); try ( PrintWriter pw = new PrintWriter(sw) ) { + pw.println( entity.javadoc() ); + if ( context.addDependentAnnotation() && entity.isInjectable() ) { pw.println( writeScopeAnnotation( entity ) ); } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMeta.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMeta.java index 15d5fb5cd42e..05a3b6550550 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMeta.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMeta.java @@ -187,18 +187,20 @@ private void addAuxiliaryMembersForAnnotation(String annotationName, String pref } private void addAuxiliaryMembersForMirror(AnnotationMirror mirror, String prefix) { - mirror.getElementValues().forEach((key, value) -> { - if ( key.getSimpleName().contentEquals("name") ) { - final String name = value.getValue().toString(); - if ( !name.isEmpty() ) { - putMember( prefix + name, auxiliaryMember( mirror, prefix, name ) ); + if ( !isJakartaDataStyle() ) { + mirror.getElementValues().forEach((key, value) -> { + if ( key.getSimpleName().contentEquals("name") ) { + final String name = value.getValue().toString(); + if ( !name.isEmpty() ) { + putMember( prefix + name, auxiliaryMember( mirror, prefix, name ) ); + } } - } - }); + }); + } } private NameMetaAttribute auxiliaryMember(AnnotationMirror mirror, String prefix, String name) { - if ( !isJakartaDataStyle() && "QUERY_".equals(prefix) ) { + if ( "QUERY_".equals(prefix) ) { final AnnotationValue resultClass = getAnnotationValue( mirror, "resultClass" ); // if there is no explicit result class, we will infer it later by // type checking the query (this is allowed but not required by JPA) @@ -207,7 +209,7 @@ private NameMetaAttribute auxiliaryMember(AnnotationMirror mirror, String prefix resultClass == null ? JAVA_OBJECT : resultClass.getValue().toString(), "jakarta.persistence.TypedQueryReference", null ); } - else if ( !isJakartaDataStyle() && "GRAPH_".equals(prefix) ) { + else if ( "GRAPH_".equals(prefix) ) { return new TypedMetaAttribute( this, name, prefix, getQualifiedName(), "jakarta.persistence.EntityGraph", null ); } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaEntity.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaEntity.java index e03ca5978fbf..65402586f254 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaEntity.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaEntity.java @@ -3107,4 +3107,20 @@ public List inheritedAnnotations() { return emptyList(); } } + + @Override + public String javadoc() { + if ( jakartaDataRepository ) { + return "/**\n * Implements Jakarta Data repository {@link " + qualifiedName + "}\n **/"; + } + else if ( repository ) { + return "/**\n * Implements repository {@link " + qualifiedName + "}\n **/"; + } + else if ( jakartaDataStaticModel ) { + return "/**\n * Jakarta Data static metamodel for {@link " + qualifiedName + "}\n **/"; + } + else { + return "/**\n * Static metamodel for {@link " + qualifiedName + "}\n **/"; + } + } } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaPackage.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaPackage.java index 2ea02569cbb8..a8c322f918de 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaPackage.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaPackage.java @@ -170,4 +170,9 @@ public boolean isJakartaDataStyle() { public List inheritedAnnotations() { return emptyList(); } + + @Override + public String javadoc() { + return "/**\n * Static metamodel package {@link " + element.getQualifiedName() + "}\n **/"; + } } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NameMetaAttribute.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NameMetaAttribute.java index 5ce3827cbb44..403551dc66a8 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NameMetaAttribute.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NameMetaAttribute.java @@ -40,8 +40,11 @@ public String getAttributeDeclarationString() { @Override public String getAttributeNameDeclarationString() { - return new StringBuilder() - .append("public static final ") + final StringBuilder declaration = new StringBuilder(); + if ( !annotationMetaEntity.isJakartaDataStyle() ) { + declaration.append( "public static final " ); + } + return declaration .append(annotationMetaEntity.importType(String.class.getName())) .append(' ') .append(prefix) diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/model/Metamodel.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/model/Metamodel.java index 2b4273c586ce..2a6c5ca02696 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/model/Metamodel.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/model/Metamodel.java @@ -58,4 +58,6 @@ public interface Metamodel extends ImportContext { boolean isJakartaDataStyle(); List inheritedAnnotations(); + + String javadoc(); } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/xml/XmlMetaEntity.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/xml/XmlMetaEntity.java index 8dab3cdeeabe..7a409df6b3be 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/xml/XmlMetaEntity.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/xml/XmlMetaEntity.java @@ -653,4 +653,9 @@ public boolean isJakartaDataStyle() { public List inheritedAnnotations() { return emptyList(); } + + @Override + public String javadoc() { + return "/**\n * Static metamodel for {@link " + clazzName + "}\n **/"; + } }