mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-26 05:14:57 +00:00
HHH-13220 Only create the PersistentAttributeTransformer if the class is enhanced
This commit is contained in:
parent
76981d97a8
commit
d65b5e62e2
@ -159,8 +159,6 @@ private DynamicType.Builder<?> doEnhance(DynamicType.Builder<?> builder, TypeDes
|
||||
return null;
|
||||
}
|
||||
|
||||
PersistentAttributeTransformer transformer = PersistentAttributeTransformer.collectPersistentFields( managedCtClass, enhancementContext, typePool );
|
||||
|
||||
if ( enhancementContext.isEntityClass( managedCtClass ) ) {
|
||||
log.debugf( "Enhancing [%s] as Entity", managedCtClass.getName() );
|
||||
builder = builder.implement( ManagedEntity.class )
|
||||
@ -291,7 +289,7 @@ private DynamicType.Builder<?> doEnhance(DynamicType.Builder<?> builder, TypeDes
|
||||
}
|
||||
}
|
||||
|
||||
return transformer.applyTo( builder, false );
|
||||
return createTransformer( managedCtClass ).applyTo( builder, false );
|
||||
}
|
||||
else if ( enhancementContext.isCompositeClass( managedCtClass ) ) {
|
||||
log.debugf( "Enhancing [%s] as Composite", managedCtClass.getName() );
|
||||
@ -324,17 +322,17 @@ else if ( enhancementContext.isCompositeClass( managedCtClass ) ) {
|
||||
.intercept( implementationClearOwner );
|
||||
}
|
||||
|
||||
return transformer.applyTo( builder, false );
|
||||
return createTransformer( managedCtClass ).applyTo( builder, false );
|
||||
}
|
||||
else if ( enhancementContext.isMappedSuperclassClass( managedCtClass ) ) {
|
||||
log.debugf( "Enhancing [%s] as MappedSuperclass", managedCtClass.getName() );
|
||||
|
||||
builder = builder.implement( ManagedMappedSuperclass.class );
|
||||
return transformer.applyTo( builder, true );
|
||||
return createTransformer( managedCtClass ).applyTo( builder, true );
|
||||
}
|
||||
else if ( enhancementContext.doExtendedEnhancement( managedCtClass ) ) {
|
||||
log.debugf( "Extended enhancement of [%s]", managedCtClass.getName() );
|
||||
return transformer.applyExtended( builder );
|
||||
return createTransformer( managedCtClass ).applyExtended( builder );
|
||||
}
|
||||
else {
|
||||
log.debugf( "Skipping enhancement of [%s]: not entity or composite", managedCtClass.getName() );
|
||||
@ -342,6 +340,10 @@ else if ( enhancementContext.doExtendedEnhancement( managedCtClass ) ) {
|
||||
}
|
||||
}
|
||||
|
||||
private PersistentAttributeTransformer createTransformer(TypeDescription typeDescription) {
|
||||
return PersistentAttributeTransformer.collectPersistentFields( typeDescription, enhancementContext, typePool );
|
||||
}
|
||||
|
||||
// See HHH-10977 HHH-11284 HHH-11404 --- check for declaration of Managed interface on the class, not inherited
|
||||
private boolean alreadyEnhanced(TypeDescription managedCtClass) {
|
||||
for ( TypeDescription.Generic declaredInterface : managedCtClass.getInterfaces() ) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user