Skip to content

Commit af54844

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

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

hibernate-envers/src/main/java/org/hibernate/envers/DefaultTrackingModifiedEntitiesRevisionEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
import jakarta.persistence.FetchType;
1212
import jakarta.persistence.JoinColumn;
1313
import jakarta.persistence.JoinTable;
14-
import jakarta.persistence.MappedSuperclass;
1514

15+
import jakarta.persistence.MappedSuperclass;
1616
import org.hibernate.annotations.Fetch;
1717
import org.hibernate.annotations.FetchMode;
1818

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)