Skip to content

Commit b9eee54

Browse files
committed
[hibernate#2640] Override EntityMetamodel#getBytecodeEnhancementMetadataPojo
Hibernate ORM 7.2 now calls this method when it needs to enable bytecode enhancements
1 parent 726e152 commit b9eee54

File tree

3 files changed

+45
-0
lines changed

3 files changed

+45
-0
lines changed

hibernate-reactive-core/src/main/java/org/hibernate/reactive/persister/entity/impl/ReactiveJoinedSubclassEntityPersister.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
package org.hibernate.reactive.persister.entity.impl;
77

88
import java.util.List;
9+
import java.util.Set;
910
import java.util.concurrent.CompletionStage;
1011

1112
import org.hibernate.FetchMode;
1213
import org.hibernate.HibernateException;
1314
import org.hibernate.LockMode;
1415
import org.hibernate.LockOptions;
1516
import org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor;
17+
import org.hibernate.bytecode.spi.BytecodeEnhancementMetadata;
1618
import org.hibernate.cache.spi.access.EntityDataAccess;
1719
import org.hibernate.cache.spi.access.NaturalIdDataAccess;
1820
import org.hibernate.engine.spi.CascadeStyle;
@@ -41,6 +43,7 @@
4143
import org.hibernate.persister.entity.mutation.InsertCoordinator;
4244
import org.hibernate.persister.entity.mutation.UpdateCoordinator;
4345
import org.hibernate.property.access.spi.PropertyAccess;
46+
import org.hibernate.reactive.bythecode.spi.ReactiveBytecodeEnhancementMetadataPojoImplAdapter;
4447
import org.hibernate.reactive.loader.ast.internal.ReactiveSingleIdArrayLoadPlan;
4548
import org.hibernate.reactive.loader.ast.spi.ReactiveSingleUniqueKeyEntityLoader;
4649
import org.hibernate.reactive.logging.impl.Log;
@@ -53,6 +56,7 @@
5356
import org.hibernate.sql.ast.tree.from.TableGroup;
5457
import org.hibernate.sql.results.graph.DomainResult;
5558
import org.hibernate.sql.results.graph.DomainResultCreationState;
59+
import org.hibernate.type.CompositeType;
5660
import org.hibernate.type.EntityType;
5761
import org.hibernate.type.Type;
5862

@@ -88,6 +92,17 @@ public void initializeLazyProperty(Object entity, EntityEntry entry, Object prop
8892
super.initializeLazyProperty( entity, entry, propValue, index, type );
8993
}
9094

95+
@Override
96+
protected BytecodeEnhancementMetadata getBytecodeEnhancementMetadataPojo(
97+
PersistentClass persistentClass,
98+
RuntimeModelCreationContext creationContext,
99+
Set<String> idAttributeNames,
100+
CompositeType nonAggregatedCidMapper,
101+
boolean collectionsInDefaultFetchGroupEnabled) {
102+
return ReactiveBytecodeEnhancementMetadataPojoImplAdapter
103+
.from( persistentClass, idAttributeNames, nonAggregatedCidMapper, collectionsInDefaultFetchGroupEnabled, creationContext.getMetadata() );
104+
}
105+
91106
@Override
92107
protected SingleIdEntityLoader<?> buildSingleIdEntityLoader() {
93108
return reactiveDelegate.buildSingleIdEntityLoader();

hibernate-reactive-core/src/main/java/org/hibernate/reactive/persister/entity/impl/ReactiveSingleTableEntityPersister.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package org.hibernate.reactive.persister.entity.impl;
77

88
import java.util.List;
9+
import java.util.Set;
910
import java.util.concurrent.CompletionStage;
1011
import java.util.function.Supplier;
1112

@@ -14,6 +15,7 @@
1415
import org.hibernate.LockMode;
1516
import org.hibernate.LockOptions;
1617
import org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor;
18+
import org.hibernate.bytecode.spi.BytecodeEnhancementMetadata;
1719
import org.hibernate.cache.spi.access.EntityDataAccess;
1820
import org.hibernate.cache.spi.access.NaturalIdDataAccess;
1921
import org.hibernate.engine.spi.CascadeStyle;
@@ -44,6 +46,7 @@
4446
import org.hibernate.persister.entity.mutation.InsertCoordinator;
4547
import org.hibernate.persister.entity.mutation.UpdateCoordinator;
4648
import org.hibernate.property.access.spi.PropertyAccess;
49+
import org.hibernate.reactive.bythecode.spi.ReactiveBytecodeEnhancementMetadataPojoImplAdapter;
4750
import org.hibernate.reactive.generator.values.GeneratedValuesMutationDelegateAdaptor;
4851
import org.hibernate.reactive.loader.ast.internal.ReactiveSingleIdArrayLoadPlan;
4952
import org.hibernate.reactive.loader.ast.spi.ReactiveSingleUniqueKeyEntityLoader;
@@ -57,6 +60,7 @@
5760
import org.hibernate.sql.ast.tree.from.TableGroup;
5861
import org.hibernate.sql.results.graph.DomainResult;
5962
import org.hibernate.sql.results.graph.DomainResultCreationState;
63+
import org.hibernate.type.CompositeType;
6064
import org.hibernate.type.EntityType;
6165
import org.hibernate.type.Type;
6266

@@ -93,6 +97,17 @@ public void initializeLazyProperty(Object entity, EntityEntry entry, Object prop
9397
super.initializeLazyProperty( entity, entry, propValue, index, type );
9498
}
9599

100+
@Override
101+
protected BytecodeEnhancementMetadata getBytecodeEnhancementMetadataPojo(
102+
PersistentClass persistentClass,
103+
RuntimeModelCreationContext creationContext,
104+
Set<String> idAttributeNames,
105+
CompositeType nonAggregatedCidMapper,
106+
boolean collectionsInDefaultFetchGroupEnabled) {
107+
return ReactiveBytecodeEnhancementMetadataPojoImplAdapter
108+
.from( persistentClass, idAttributeNames, nonAggregatedCidMapper, collectionsInDefaultFetchGroupEnabled, creationContext.getMetadata() );
109+
}
110+
96111
@Override
97112
public GeneratedValuesMutationDelegate createInsertDelegate() {
98113
return ReactiveAbstractEntityPersister.super.createReactiveInsertDelegate();

hibernate-reactive-core/src/main/java/org/hibernate/reactive/persister/entity/impl/ReactiveUnionSubclassEntityPersister.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import java.lang.invoke.MethodHandles;
99
import java.util.List;
10+
import java.util.Set;
1011
import java.util.concurrent.CompletionStage;
1112

1213
import org.hibernate.FetchMode;
@@ -15,6 +16,7 @@
1516
import org.hibernate.LockOptions;
1617
import org.hibernate.MappingException;
1718
import org.hibernate.bytecode.enhance.spi.interceptor.LazyAttributeDescriptor;
19+
import org.hibernate.bytecode.spi.BytecodeEnhancementMetadata;
1820
import org.hibernate.cache.spi.access.EntityDataAccess;
1921
import org.hibernate.cache.spi.access.NaturalIdDataAccess;
2022
import org.hibernate.engine.spi.CascadeStyle;
@@ -44,6 +46,7 @@
4446
import org.hibernate.persister.entity.mutation.InsertCoordinator;
4547
import org.hibernate.persister.entity.mutation.UpdateCoordinator;
4648
import org.hibernate.property.access.spi.PropertyAccess;
49+
import org.hibernate.reactive.bythecode.spi.ReactiveBytecodeEnhancementMetadataPojoImplAdapter;
4750
import org.hibernate.reactive.loader.ast.internal.ReactiveSingleIdArrayLoadPlan;
4851
import org.hibernate.reactive.loader.ast.spi.ReactiveSingleUniqueKeyEntityLoader;
4952
import org.hibernate.reactive.logging.impl.Log;
@@ -57,6 +60,7 @@
5760
import org.hibernate.sql.ast.tree.from.TableGroup;
5861
import org.hibernate.sql.results.graph.DomainResult;
5962
import org.hibernate.sql.results.graph.DomainResultCreationState;
63+
import org.hibernate.type.CompositeType;
6064
import org.hibernate.type.EntityType;
6165
import org.hibernate.type.Type;
6266

@@ -89,6 +93,17 @@ public void initializeLazyProperty(Object entity, EntityEntry entry, Object prop
8993
super.initializeLazyProperty( entity, entry, propValue, index, type );
9094
}
9195

96+
@Override
97+
protected BytecodeEnhancementMetadata getBytecodeEnhancementMetadataPojo(
98+
PersistentClass persistentClass,
99+
RuntimeModelCreationContext creationContext,
100+
Set<String> idAttributeNames,
101+
CompositeType nonAggregatedCidMapper,
102+
boolean collectionsInDefaultFetchGroupEnabled) {
103+
return ReactiveBytecodeEnhancementMetadataPojoImplAdapter
104+
.from( persistentClass, idAttributeNames, nonAggregatedCidMapper, collectionsInDefaultFetchGroupEnabled, creationContext.getMetadata() );
105+
}
106+
92107
@Override
93108
protected SingleIdEntityLoader<?> buildSingleIdEntityLoader() {
94109
return reactiveDelegate.buildSingleIdEntityLoader();

0 commit comments

Comments
 (0)