Skip to content

Commit ea02108

Browse files
committed
HHH-17612 Separate envers entity types for default revision entities from mapped-superclasses
1 parent 36f565c commit ea02108

File tree

8 files changed

+88
-8
lines changed

8 files changed

+88
-8
lines changed

hibernate-envers/src/main/java/org/hibernate/envers/configuration/internal/RevisionInfoConfiguration.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@
3434
import org.hibernate.envers.enhanced.SequenceIdTrackingModifiedEntitiesRevisionEntity;
3535
import org.hibernate.envers.internal.entities.PropertyData;
3636
import org.hibernate.envers.internal.entities.RevisionTimestampData;
37+
import org.hibernate.envers.internal.entities.mappings.DefaultRevisionEntityImpl;
38+
import org.hibernate.envers.internal.entities.mappings.DefaultTrackingModifiedEntitiesRevisionEntityImpl;
39+
import org.hibernate.envers.internal.entities.mappings.enhanced.SequenceIdRevisionEntityImpl;
40+
import org.hibernate.envers.internal.entities.mappings.enhanced.SequenceIdTrackingModifiedEntitiesRevisionEntityImpl;
3741
import org.hibernate.envers.internal.revisioninfo.DefaultRevisionInfoGenerator;
3842
import org.hibernate.envers.internal.revisioninfo.DefaultTrackingModifiedEntitiesRevisionInfoGenerator;
3943
import org.hibernate.envers.internal.revisioninfo.ModifiedEntityNamesReader;
@@ -388,14 +392,14 @@ private void locateRevisionEntityMapping() {
388392

389393
if ( configuration.isTrackEntitiesChanged() ) {
390394
revisionInfoClass = configuration.isNativeIdEnabled()
391-
? DefaultTrackingModifiedEntitiesRevisionEntity.class
392-
: SequenceIdTrackingModifiedEntitiesRevisionEntity.class;
395+
? DefaultTrackingModifiedEntitiesRevisionEntityImpl.class
396+
: SequenceIdTrackingModifiedEntitiesRevisionEntityImpl.class;
393397
revisionInfoEntityName = revisionInfoClass.getName();
394398
}
395399
else {
396400
revisionInfoClass = configuration.isNativeIdEnabled()
397-
? DefaultRevisionEntity.class
398-
: SequenceIdRevisionEntity.class;
401+
? DefaultRevisionEntityImpl.class
402+
: SequenceIdRevisionEntityImpl.class;
399403
}
400404

401405
timestampValueResolver = createRevisionTimestampResolver(
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* SPDX-License-Identifier: LGPL-2.1-or-later
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.envers.internal.entities.mappings;
6+
7+
import jakarta.persistence.Entity;
8+
import org.hibernate.envers.DefaultRevisionEntity;
9+
10+
/**
11+
* @author Marco Belladelli
12+
*/
13+
@Entity
14+
public class DefaultRevisionEntityImpl extends DefaultRevisionEntity {
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* SPDX-License-Identifier: LGPL-2.1-or-later
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.envers.internal.entities.mappings;
6+
7+
import jakarta.persistence.Entity;
8+
import org.hibernate.envers.DefaultTrackingModifiedEntitiesRevisionEntity;
9+
10+
/**
11+
* @author Marco Belladelli
12+
*/
13+
@Entity
14+
public class DefaultTrackingModifiedEntitiesRevisionEntityImpl extends DefaultTrackingModifiedEntitiesRevisionEntity {
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* SPDX-License-Identifier: LGPL-2.1-or-later
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.envers.internal.entities.mappings.enhanced;
6+
7+
import jakarta.persistence.Entity;
8+
import org.hibernate.envers.enhanced.SequenceIdRevisionEntity;
9+
10+
/**
11+
* @author Marco Belladelli
12+
*/
13+
@Entity
14+
public class SequenceIdRevisionEntityImpl extends SequenceIdRevisionEntity {
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* SPDX-License-Identifier: LGPL-2.1-or-later
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
package org.hibernate.envers.internal.entities.mappings.enhanced;
6+
7+
import jakarta.persistence.Entity;
8+
import org.hibernate.envers.enhanced.SequenceIdTrackingModifiedEntitiesRevisionEntity;
9+
10+
/**
11+
* @author Marco Belladelli
12+
*/
13+
@Entity
14+
public class SequenceIdTrackingModifiedEntitiesRevisionEntityImpl extends SequenceIdTrackingModifiedEntitiesRevisionEntity {
15+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*
2+
* SPDX-License-Identifier: LGPL-2.1-or-later
3+
* Copyright Red Hat Inc. and Hibernate Authors
4+
*/
5+
6+
/**
7+
* Contains empty implementations that are the {@link jakarta.persistence.Entity entity}
8+
* subtypes, simply inheriting from the default revision entities which are mapped as
9+
* {@link jakarta.persistence.MappedSuperclass mapped-superclass}es.
10+
* <p>
11+
* This is needed to allow for the correct injection of the static-metamodel {@code class_}
12+
* meta-type field of both the default revision entities and the mapped-superclass from which
13+
* custom ones might extend from.
14+
*
15+
* @author Marco Belladelli
16+
*/
17+
package org.hibernate.envers.internal.entities.mappings;

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

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
import java.util.Map;
88

9-
import org.hibernate.envers.enhanced.SequenceIdTrackingModifiedEntitiesRevisionEntity;
109

10+
import org.hibernate.envers.internal.entities.mappings.enhanced.SequenceIdTrackingModifiedEntitiesRevisionEntityImpl;
1111
import org.hibernate.testing.DialectChecks;
1212
import org.hibernate.testing.RequiresDialectFeature;
1313

@@ -24,6 +24,6 @@ public void addConfigOptions(Map configuration) {
2424

2525
@Override
2626
protected Class<?> getRevisionEntityClass() {
27-
return SequenceIdTrackingModifiedEntitiesRevisionEntity.class;
27+
return SequenceIdTrackingModifiedEntitiesRevisionEntityImpl.class;
2828
}
2929
}

0 commit comments

Comments
 (0)