Skip to content

Commit 938fbae

Browse files
committed
HHH-17612 Annotated envers supertype as @Entity instead of superclass
1 parent dd3be96 commit 938fbae

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

hibernate-envers/src/test/java/org/hibernate/orm/test/envers/integration/reventity/removal/AbstractRevisionEntityRemovalTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ protected void addConfigOptions(Map options) {
3434
@Override
3535
protected Class<?>[] getAnnotatedClasses() {
3636
return new Class<?>[] {
37-
StrTestEntity.class, ListOwnedEntity.class, ListOwningEntity.class,
38-
getRevisionEntityClass()
37+
StrTestEntity.class, ListOwnedEntity.class, ListOwningEntity.class
3938
};
4039
}
4140

tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaType.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,31 @@ public boolean hasStringAttribute() {
3434

3535
@Override
3636
public String getAttributeDeclarationString() {
37+
final String qualifiedName = annotationMetaEntity.getQualifiedName();
3738
return new StringBuilder()
3839
.append("\n/**\n * @see ")
39-
.append( annotationMetaEntity.getQualifiedName() )
40+
.append(qualifiedName)
4041
.append( "\n **/\n" )
4142
.append("public static volatile ")
42-
.append(annotationMetaEntity.importType(getTypeDeclaration()))
43+
.append(annotationMetaEntity.importType(adjustedTypeDeclaration(qualifiedName)))
4344
.append("<")
44-
.append(annotationMetaEntity.importType(annotationMetaEntity.getQualifiedName()))
45+
.append(annotationMetaEntity.importType(qualifiedName))
4546
.append(">")
4647
.append(" class_;").toString();
4748
}
4849

50+
private String adjustedTypeDeclaration(String qualifiedName) {
51+
if ( qualifiedName.startsWith( "org.hibernate.envers" ) ) {
52+
// This is a workaround for envers default revision entities which must be annotated
53+
// @MappedSuperclass to allow for custom revision entities extending them,
54+
// but if used by default are contributed (as hbm.xml mappings) as entities
55+
return "jakarta.persistence.metamodel.EntityType";
56+
}
57+
else {
58+
return getTypeDeclaration();
59+
}
60+
}
61+
4962
@Override
5063
public String getAttributeNameDeclarationString() {
5164
throw new UnsupportedOperationException("operation not supported");

0 commit comments

Comments
 (0)