Skip to content

Commit cfb1d76

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

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
@@ -226,7 +226,7 @@ private boolean isNullifiable(final String entityName, Object object)
226226
// an unloaded proxy might be scheduled for deletion
227227
return persistenceContext.containsDeletedUnloadedEntityKey(
228228
session.generateEntityKey(
229-
lazyInitializer.getIdentifier(),
229+
lazyInitializer.getInternalIdentifier(),
230230
session.getFactory().getMappingMetamodel()
231231
.getEntityDescriptor( lazyInitializer.getEntityName() )
232232
)

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
@@ -109,7 +109,7 @@ private boolean optimizeUnloadedDelete(DeleteEvent event) {
109109
final EventSource source = event.getSession();
110110
final EntityPersister persister = event.getFactory().getMappingMetamodel()
111111
.findEntityDescriptor( lazyInitializer.getEntityName() );
112-
final Object id = lazyInitializer.getIdentifier();
112+
final Object id = lazyInitializer.getInternalIdentifier();
113113
final EntityKey key = source.generateEntityKey( id, persister );
114114
final PersistenceContext persistenceContext = source.getPersistenceContextInternal();
115115
if ( !persistenceContext.containsEntity( 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
@@ -1788,7 +1788,7 @@ public <T> T getReference(T object) {
17881788
checkOpen();
17891789
final LazyInitializer lazyInitializer = extractLazyInitializer( object );
17901790
if ( lazyInitializer != null ) {
1791-
return (T) getReference( lazyInitializer.getPersistentClass(), lazyInitializer.getIdentifier() );
1791+
return (T) getReference( lazyInitializer.getPersistentClass(), lazyInitializer.getInternalIdentifier() );
17921792
}
17931793
else {
17941794
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
@@ -703,7 +703,7 @@ public void fetch(Object association) {
703703
if ( initializer != null ) {
704704
if ( initializer.isUninitialized() ) {
705705
final String entityName = initializer.getEntityName();
706-
final Object id = initializer.getIdentifier();
706+
final Object id = initializer.getInternalIdentifier();
707707
initializer.setSession( this );
708708
persistenceContext.beforeLoad();
709709
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
@@ -153,7 +153,7 @@ public IdentifierValue getUnsavedStrategy() {
153153
public Object getIdentifier(Object entity) {
154154
final LazyInitializer lazyInitializer = HibernateProxy.extractLazyInitializer( entity );
155155
if ( lazyInitializer != null ) {
156-
return lazyInitializer.getIdentifier();
156+
return lazyInitializer.getInternalIdentifier();
157157
}
158158
return propertyAccess.getGetter().get( entity );
159159
}

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
@@ -87,7 +87,7 @@ public void applySqlSelections(
8787
public Object getIdentifier(Object entity) {
8888
final LazyInitializer lazyInitializer = HibernateProxy.extractLazyInitializer( entity );
8989
if ( lazyInitializer != null ) {
90-
return lazyInitializer.getIdentifier();
90+
return lazyInitializer.getInternalIdentifier();
9191
}
9292
return propertyAccess.getGetter().get( entity );
9393
}

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
@@ -246,7 +246,7 @@ public Object getIdentifier(Object entity, MergeContext mergeContext) {
246246
if ( hasContainingClass() ) {
247247
final LazyInitializer lazyInitializer = HibernateProxy.extractLazyInitializer( entity );
248248
if ( lazyInitializer != null ) {
249-
return lazyInitializer.getIdentifier();
249+
return lazyInitializer.getInternalIdentifier();
250250
}
251251
final EmbeddableMappingType embeddableTypeDescriptor = getEmbeddableTypeDescriptor();
252252
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
@@ -500,7 +500,7 @@ public Object getAssociationKeyFromSide(
500500
final LazyInitializer lazyInitializer = HibernateProxy.extractLazyInitializer( targetObject );
501501
if ( lazyInitializer != null ) {
502502
if ( refersToPrimaryKey ) {
503-
return lazyInitializer.getIdentifier();
503+
return lazyInitializer.getInternalIdentifier();
504504
}
505505
else {
506506
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
@@ -123,7 +123,7 @@ public Class<?> getImplementationClass() {
123123
}
124124
final SharedSessionContractImplementor session = getSession();
125125
if ( session == null ) {
126-
throw new LazyInitializationException( "could not retrieve real entity class [" + getEntityName() + "#" + getIdentifier() + "] - no Session" );
126+
throw new LazyInitializationException( "could not retrieve real entity class [" + getEntityName() + "#" + getInternalIdentifier() + "] - no Session" );
127127
}
128128
final SessionFactoryImplementor factory = session.getFactory();
129129
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 @@ && isPersistentAttributeInterceptable( 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 );

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,14 +226,14 @@ else if ( lazyInitializer.isUninitialized() ) {
226226
// Read the discriminator from the result set if necessary
227227
final Object discriminatorValue = discriminatorValueAssembler.assemble( rowProcessingState );
228228
data.concreteDescriptor = fetchedPart.resolveDiscriminatorValue( discriminatorValue ).getEntityPersister();
229-
data.entityIdentifier = lazyInitializer.getIdentifier();
229+
data.entityIdentifier = lazyInitializer.getInternalIdentifier();
230230
}
231231
}
232232
else {
233233
data.setState( State.INITIALIZED );
234234
if ( keyIsEager ) {
235235
data.concreteDescriptor = rowProcessingState.getSession().getEntityPersister( null, lazyInitializer.getImplementation() );
236-
data.entityIdentifier = lazyInitializer.getIdentifier();
236+
data.entityIdentifier = lazyInitializer.getInternalIdentifier();
237237
}
238238
}
239239
data.setInstance( instance );

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,13 +172,13 @@ public void resolveInstance(Object instance, Data data) {
172172
else if ( lazyInitializer.isUninitialized() ) {
173173
data.setState( State.RESOLVED );
174174
if ( keyIsEager ) {
175-
data.entityIdentifier = lazyInitializer.getIdentifier();
175+
data.entityIdentifier = lazyInitializer.getInternalIdentifier();
176176
}
177177
}
178178
else {
179179
data.setState( State.INITIALIZED );
180180
if ( keyIsEager ) {
181-
data.entityIdentifier = lazyInitializer.getIdentifier();
181+
data.entityIdentifier = lazyInitializer.getInternalIdentifier();
182182
}
183183
}
184184
data.setInstance( instance );

0 commit comments

Comments
 (0)