This commit is contained in:
Guenther Demetz 2012-05-02 14:55:00 +02:00 committed by Steve Ebersole
parent f5e6a44f7e
commit 94cb6b82b5

View File

@ -411,13 +411,23 @@ protected Object doLoad(
if ( entity != null ) { if ( entity != null ) {
if ( traceEnabled ) LOG.tracev( "Resolved object in second-level cache: {0}", if ( traceEnabled ) LOG.tracev( "Resolved object in second-level cache: {0}",
MessageHelper.infoString( persister, event.getEntityId(), event.getSession().getFactory() ) ); MessageHelper.infoString( persister, event.getEntityId(), event.getSession().getFactory() ) );
return entity;
} }
else {
if ( traceEnabled ) LOG.tracev( "Object not resolved in any cache: {0}", if ( traceEnabled ) LOG.tracev( "Object not resolved in any cache: {0}",
MessageHelper.infoString( persister, event.getEntityId(), event.getSession().getFactory() ) ); MessageHelper.infoString( persister, event.getEntityId(), event.getSession().getFactory() ) );
entity = loadFromDatasource(event, persister, keyToLoad, options);
}
return loadFromDatasource(event, persister, keyToLoad, options); if (entity != null && persister.hasNaturalIdentifier()) {
event.getSession().getPersistenceContext().getNaturalIdHelper().cacheNaturalIdCrossReferenceFromLoad(
persister,
event.getEntityId(),
event.getSession().getPersistenceContext().getNaturalIdHelper().extractNaturalIdValues( entity, persister )
);
}
return entity;
} }
/** /**
@ -443,14 +453,6 @@ protected Object loadFromDatasource(
source source
); );
if (entity != null && persister.hasNaturalIdentifier()) {
event.getSession().getPersistenceContext().getNaturalIdHelper().cacheNaturalIdCrossReferenceFromLoad(
persister,
event.getEntityId(),
source.getPersistenceContext().getNaturalIdHelper().extractNaturalIdValues( entity, persister )
);
}
if ( event.isAssociationFetch() && source.getFactory().getStatistics().isStatisticsEnabled() ) { if ( event.isAssociationFetch() && source.getFactory().getStatistics().isStatisticsEnabled() ) {
source.getFactory().getStatisticsImplementor().fetchEntity( event.getEntityClassName() ); source.getFactory().getStatisticsImplementor().fetchEntity( event.getEntityClassName() );
} }