From 4079d2c842e2c553f3824f04f43500f6bccb2060 Mon Sep 17 00:00:00 2001 From: marko-bekhta Date: Fri, 18 Jul 2025 08:43:03 +0200 Subject: [PATCH] HHH-19626 Add a test case for mapped superclass with generics and annotation processor --- .../test/data/generic/MyActualEntity.java | 12 +++++++++ .../generic/MyActualEntityRepository.java | 12 +++++++++ .../test/data/generic/MyMappedSuperclass.java | 17 +++++++++++++ .../data/generic/MyMappedSuperclassTest.java | 25 +++++++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyActualEntity.java create mode 100644 tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyActualEntityRepository.java create mode 100644 tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyMappedSuperclass.java create mode 100644 tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyMappedSuperclassTest.java diff --git a/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyActualEntity.java b/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyActualEntity.java new file mode 100644 index 000000000000..d6e5db8c8eeb --- /dev/null +++ b/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyActualEntity.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * Copyright Red Hat Inc. and Hibernate Authors + */ +package org.hibernate.processor.test.data.generic; + +import jakarta.persistence.Entity; + +@Entity +public class MyActualEntity extends MyMappedSuperclass { + public String myString; +} diff --git a/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyActualEntityRepository.java b/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyActualEntityRepository.java new file mode 100644 index 000000000000..83001da8657b --- /dev/null +++ b/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyActualEntityRepository.java @@ -0,0 +1,12 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * Copyright Red Hat Inc. and Hibernate Authors + */ +package org.hibernate.processor.test.data.generic; + +import jakarta.data.repository.CrudRepository; +import jakarta.data.repository.Repository; + +@Repository +public interface MyActualEntityRepository extends CrudRepository { +} diff --git a/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyMappedSuperclass.java b/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyMappedSuperclass.java new file mode 100644 index 000000000000..74c3bc9754b1 --- /dev/null +++ b/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyMappedSuperclass.java @@ -0,0 +1,17 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * Copyright Red Hat Inc. and Hibernate Authors + */ +package org.hibernate.processor.test.data.generic; + +import jakarta.persistence.Id; +import jakarta.persistence.MappedSuperclass; + +import java.io.Serializable; + +@MappedSuperclass +public class MyMappedSuperclass { + @Id + private ID id; + +} diff --git a/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyMappedSuperclassTest.java b/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyMappedSuperclassTest.java new file mode 100644 index 000000000000..967b7ef7ed38 --- /dev/null +++ b/tooling/metamodel-generator/src/jakartaData/java/org/hibernate/processor/test/data/generic/MyMappedSuperclassTest.java @@ -0,0 +1,25 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * Copyright Red Hat Inc. and Hibernate Authors + */ +package org.hibernate.processor.test.data.generic; + +import org.hibernate.processor.test.util.CompilationTest; +import org.hibernate.processor.test.util.TestUtil; +import org.hibernate.processor.test.util.WithClasses; +import org.junit.jupiter.api.Test; + +import static org.hibernate.processor.test.util.TestUtil.assertMetamodelClassGeneratedFor; + +@CompilationTest +public class MyMappedSuperclassTest { + + @Test + @WithClasses({MyActualEntity.class, MyActualEntityRepository.class, MyMappedSuperclass.class}) + void smoke() { + System.out.println( TestUtil.getMetaModelSourceAsString( MyMappedSuperclass.class ) ); + System.out.println( TestUtil.getMetaModelSourceAsString( MyActualEntity.class ) ); + assertMetamodelClassGeneratedFor( MyMappedSuperclass.class ); + assertMetamodelClassGeneratedFor( MyActualEntity.class ); + } +}