Skip to content

Commit 0a288ce

Browse files
committed
Call LazyInitialized#getInternalIdentifier() instead of getIdentifier()
to avoid unnecessary proxy initializan when JPA proxy compliance is enabled
1 parent aed0a93 commit 0a288ce

12 files changed

+16
-16
lines changed

hibernate-core/src/main/java/org/hibernate/engine/internal/ForeignKeys.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ private boolean isNullifiable(final String entityName, Object object)
224224
// an unloaded proxy might be scheduled for deletion
225225
return persistenceContext.containsDeletedUnloadedEntityKey(
226226
session.generateEntityKey(
227-
lazyInitializer.getIdentifier(),
227+
lazyInitializer.getInternalIdentifier(),
228228
session.getFactory().getMappingMetamodel()
229229
.getEntityDescriptor( lazyInitializer.getEntityName() )
230230
)

hibernate-core/src/main/java/org/hibernate/event/internal/DefaultDeleteEventListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ private boolean optimizeUnloadedDelete(DeleteEvent event) {
9797
final EventSource source = event.getSession();
9898
final EntityPersister persister = event.getFactory().getMappingMetamodel()
9999
.findEntityDescriptor( lazyInitializer.getEntityName() );
100-
final Object id = lazyInitializer.getIdentifier();
100+
final Object id = lazyInitializer.getInternalIdentifier();
101101
final EntityKey key = source.generateEntityKey( id, persister );
102102
final PersistenceContext persistenceContext = source.getPersistenceContextInternal();
103103
final EntityHolder entityHolder = persistenceContext.getEntityHolder( key );

hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1829,7 +1829,7 @@ public <T> T getReference(T object) {
18291829
checkOpen();
18301830
final LazyInitializer lazyInitializer = extractLazyInitializer( object );
18311831
if ( lazyInitializer != null ) {
1832-
return (T) getReference( lazyInitializer.getPersistentClass(), lazyInitializer.getIdentifier() );
1832+
return (T) getReference( lazyInitializer.getPersistentClass(), lazyInitializer.getInternalIdentifier() );
18331833
}
18341834
else {
18351835
final EntityPersister persister = getEntityPersister( null, object );

hibernate-core/src/main/java/org/hibernate/internal/StatelessSessionImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1090,7 +1090,7 @@ public void fetch(Object association) {
10901090
if ( initializer != null ) {
10911091
if ( initializer.isUninitialized() ) {
10921092
final String entityName = initializer.getEntityName();
1093-
final Object id = initializer.getIdentifier();
1093+
final Object id = initializer.getInternalIdentifier();
10941094
initializer.setSession( this );
10951095
persistenceContext.beforeLoad();
10961096
try {

hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/BasicEntityIdentifierMappingImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ public IdentifierValue getUnsavedStrategy() {
150150
public Object getIdentifier(Object entity) {
151151
final LazyInitializer lazyInitializer = HibernateProxy.extractLazyInitializer( entity );
152152
if ( lazyInitializer != null ) {
153-
return lazyInitializer.getIdentifier();
153+
return lazyInitializer.getInternalIdentifier();
154154
}
155155
return propertyAccess.getGetter().get( entity );
156156
}

hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/EmbeddedIdentifierMappingImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public void applySqlSelections(
8585
public Object getIdentifier(Object entity) {
8686
final LazyInitializer lazyInitializer = HibernateProxy.extractLazyInitializer( entity );
8787
if ( lazyInitializer != null ) {
88-
return lazyInitializer.getIdentifier();
88+
return lazyInitializer.getInternalIdentifier();
8989
}
9090
return propertyAccess.getGetter().get( entity );
9191
}

hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/NonAggregatedIdentifierMappingImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ public Object getIdentifier(Object entity, MergeContext mergeContext) {
244244
if ( hasContainingClass() ) {
245245
final LazyInitializer lazyInitializer = HibernateProxy.extractLazyInitializer( entity );
246246
if ( lazyInitializer != null ) {
247-
return lazyInitializer.getIdentifier();
247+
return lazyInitializer.getInternalIdentifier();
248248
}
249249
final EmbeddableMappingType embeddableTypeDescriptor = getEmbeddableTypeDescriptor();
250250
final Object[] propertyValues = new Object[embeddableTypeDescriptor.getNumberOfAttributeMappings()];

hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SimpleForeignKeyDescriptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ public Object getAssociationKeyFromSide(
497497
final LazyInitializer lazyInitializer = extractLazyInitializer( targetObject );
498498
if ( lazyInitializer != null ) {
499499
if ( refersToPrimaryKey ) {
500-
return lazyInitializer.getIdentifier();
500+
return lazyInitializer.getInternalIdentifier();
501501
}
502502
else {
503503
targetObject = lazyInitializer.getImplementation();

hibernate-core/src/main/java/org/hibernate/proxy/pojo/BasicLazyInitializer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public Class<?> getImplementationClass() {
121121
}
122122
final SharedSessionContractImplementor session = getSession();
123123
if ( session == null ) {
124-
throw new LazyInitializationException( "could not retrieve real entity class [" + getEntityName() + "#" + getIdentifier() + "] - no Session" );
124+
throw new LazyInitializationException( "could not retrieve real entity class [" + getEntityName() + "#" + getInternalIdentifier() + "] - no Session" );
125125
}
126126
final SessionFactoryImplementor factory = session.getFactory();
127127
final EntityPersister entityDescriptor = factory.getMappingMetamodel().getEntityDescriptor( getEntityName() );

hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/AbstractBatchEntitySelectFetchInitializer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,13 +170,13 @@ && getAttributeInterceptor( instance )
170170
}
171171
else if ( lazyInitializer.isUninitialized() ) {
172172
data.setState( State.RESOLVED );
173-
data.entityIdentifier = lazyInitializer.getIdentifier();
173+
data.entityIdentifier = lazyInitializer.getInternalIdentifier();
174174
}
175175
else {
176176
// Entity is initialized
177177
data.setState( State.INITIALIZED );
178178
if ( keyIsEager ) {
179-
data.entityIdentifier = lazyInitializer.getIdentifier();
179+
data.entityIdentifier = lazyInitializer.getInternalIdentifier();
180180
}
181181
data.setInstance( lazyInitializer.getImplementation() );
182182
}
@@ -240,7 +240,7 @@ public void initializeInstanceFromParent(Object parentInstance, Data data) {
240240
else {
241241
final LazyInitializer lazyInitializer = HibernateProxy.extractLazyInitializer( instance );
242242
if ( lazyInitializer != null && lazyInitializer.isUninitialized() ) {
243-
data.entityKey = new EntityKey( lazyInitializer.getIdentifier(), concreteDescriptor );
243+
data.entityKey = new EntityKey( lazyInitializer.getInternalIdentifier(), concreteDescriptor );
244244
registerToBatchFetchQueue( data );
245245
}
246246
data.setState( State.INITIALIZED );

0 commit comments

Comments
 (0)