subselect is ignored in EntityLoader

Description

subselect annotations are not respected in most of my domain tree and after some debugging seems i can see the cause: when using SessionImpl.get(...), eventualy EntityLoader.isSubselectLoadingEnabled() is being called but since it is not being overriden within EntityLoader the default implementation of Loader is called and return false what seems to me as wrong, stacktrace (sources: 5.0.9.Final) can be seen below.

EntityLoader(Loader).isSubselectLoadingEnabled() line: 1006
EntityLoader(Loader).processResultSet(ResultSet, QueryParameters, SessionImplementor, boolean, ResultTransformer, int, List<AfterLoadAction>) line: 958
EntityLoader(Loader).doQuery(SessionImplementor, QueryParameters, boolean, ResultTransformer) line: 930
EntityLoader(Loader).doQueryAndInitializeNonLazyCollections(SessionImplementor, QueryParameters, boolean, ResultTransformer) line: 336
EntityLoader(Loader).doQueryAndInitializeNonLazyCollections(SessionImplementor, QueryParameters, boolean) line: 306
EntityLoader(Loader).loadEntity(SessionImplementor, Object, Type, Object, String, Serializable, EntityPersister, LockOptions) line: 2204
EntityLoader(AbstractEntityLoader).load(SessionImplementor, Object, Object, Serializable, LockOptions) line: 60
EntityLoader.loadByUniqueKey(SessionImplementor, Object) line: 143
SingleTableEntityPersister(AbstractEntityPersister).loadByUniqueKey(String, Object, SessionImplementor) line: 2111
OneToOneType(EntityType).loadByUniqueKey(String, String, Object, SessionImplementor) line: 685
OneToOneType(EntityType).resolve(Object, SessionImplementor, Object) line: 427
TwoPhaseLoad.doInitializeEntity(Object, EntityEntry, boolean, SessionImplementor, PreLoadEvent) line: 154
TwoPhaseLoad.initializeEntity(Object, boolean, SessionImplementor, PreLoadEvent) line: 128
EntityLoadQueryDetails$EntityLoaderRowReader(AbstractRowReader).performTwoPhaseLoad(PreLoadEvent, ResultSetProcessingContextImpl, List<HydratedEntityRegistration>) line: 238
EntityLoadQueryDetails$EntityLoaderRowReader(AbstractRowReader).finishUp(ResultSetProcessingContextImpl, List<AfterLoadAction>) line: 209
ResultSetProcessorImpl.extractResults(ResultSet, SessionImplementor, QueryParameters, NamedParameterContext, boolean, boolean, ResultTransformer, List<AfterLoadAction>) line: 123
EntityLoader(AbstractLoadPlanBasedLoader).executeLoad(SessionImplementor, QueryParameters, LoadQueryDetails, boolean, ResultTransformer, List<AfterLoadAction>) line: 122
EntityLoader(AbstractLoadPlanBasedLoader).executeLoad(SessionImplementor, QueryParameters, LoadQueryDetails, boolean, ResultTransformer) line: 86
EntityLoader(AbstractLoadPlanBasedEntityLoader).load(Serializable, Object, SessionImplementor, LockOptions) line: 167
SingleTableEntityPersister(AbstractEntityPersister).load(Serializable, Object, LockOptions, SessionImplementor) line: 3956
DefaultLoadEventListener.loadFromDatasource(LoadEvent, EntityPersister) line: 508
DefaultLoadEventListener.doLoad(LoadEvent, EntityPersister, EntityKey, LoadEventListener$LoadType) line: 478
DefaultLoadEventListener.load(LoadEvent, EntityPersister, EntityKey, LoadEventListener$LoadType) line: 219
DefaultLoadEventListener.proxyOrLoad(LoadEvent, EntityPersister, EntityKey, LoadEventListener$LoadType) line: 278
DefaultLoadEventListener.doOnLoad(EntityPersister, LoadEvent, LoadEventListener$LoadType) line: 121
DefaultLoadEventListener.onLoad(LoadEvent, LoadEventListener$LoadType) line: 89
SessionImpl.fireLoad(LoadEvent, LoadEventListener$LoadType) line: 1129
SessionImpl.access$2600(SessionImpl, LoadEvent, LoadEventListener$LoadType) line: 164
SessionImpl$IdentifierLoadAccessImpl.load(Serializable) line: 2696
SessionImpl.get(Class<T>, Serializable) line: 975

Activity

Show:
Duplicate

Details

Assignee

Reporter

Components

Affects versions

Priority

Created August 1, 2016 at 3:02 PM
Updated December 3, 2024 at 9:28 AM
Resolved August 2, 2016 at 4:31 AM