Changes to loaders and TwoPhaseLoad to allow "internal" loading to be reused by hibernate-reactive

Description

Includes the following changes.

  • Break TwoPhaseLoad into 2 methods, #initializeEntityEntryLoadedState and #initializeEntityFromEntityEntryLoadedState. #initializeEntityEntryLoadedState takes an argument of type EntityResolver, which is responsible for resolving to-one entity properties.

  • A method was extracted from Loader#processResultSe, #getRowsFromResultSet, which reads all the rows from the ResultSet.

  • Some methods in Loader and OuterJoinLoader were changed to protected or public, as needed so that Reactive implementations could make them public.

  • Changes to AbstractLoadPlanBasedEntityLoader, AbstractLoadQueryDetails, EntityLoadQueryDetails, BatchingLoadQueryDetailsFactory, to allow a ResultSetProcessorResolver to be provided by an implementation of AbstractLoadPlanBasedEntityLoader

  • Changes to ResultSetProcessorImpl to allow hibernate-reactive loaders to extend it so that it can process the ResultSet and resolve hydrated objects reactively.

  • Added EntityType#isEager(Boolean overridingEager) in order to determine if an entity attribute being resolved by TwoPhaseLoad#initializeEntity will be eager.

Environment

None

Assignee

Gail Badner

Reporter

Gail Badner

Fix versions

Labels

None

backPortable

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

Components

Priority

Major
Configure