From f32bb7276fe514d5be6f2138b971a356578956ec Mon Sep 17 00:00:00 2001 From: Gavin King Date: Thu, 28 Mar 2024 23:31:10 +0100 Subject: [PATCH] let a handwritten metamodel "override" the generated one used in the JD TCK (ffff) Signed-off-by: Gavin King --- .../java/org/hibernate/processor/HibernateProcessor.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/HibernateProcessor.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/HibernateProcessor.java index ed1729bdf3..7506d9b481 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/HibernateProcessor.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/HibernateProcessor.java @@ -485,9 +485,14 @@ private void handleRootElementAnnotationMirrors(final Element element) { if ( context.generateJakartaDataStaticMetamodel() // no static metamodel for embeddable classes in Jakarta Data && hasAnnotation( element, ENTITY, MAPPED_SUPERCLASS ) - // Don't generate a Jakarta Data metamodel + // don't generate a Jakarta Data metamodel // if this entity was partially mapped in XML - && alreadyExistingMetaEntity == null ) { + && alreadyExistingMetaEntity == null + // let a handwritten metamodel "override" the generated one + // (this is used in the Jakarta Data TCK) + && element.getEnclosingElement().getEnclosedElements() + .stream().noneMatch(e -> e.getSimpleName() + .contentEquals('_' + element.getSimpleName().toString()))) { final AnnotationMetaEntity dataMetaEntity = AnnotationMetaEntity.create( typeElement, context, requiresLazyMemberInitialization,