Fixed
Details
Assignee
Steve EbersoleSteve EbersoleReporter
Steve EbersoleSteve EbersoleTime tracking
35.98h loggedComponents
Fix versions
Priority
Major
Details
Details
Assignee
Steve Ebersole
Steve EbersoleReporter
Steve Ebersole
Steve EbersoleTime tracking
35.98h logged
Components
Fix versions
Priority
Created October 3, 2012 at 7:18 PM
Updated July 10, 2013 at 5:23 PM
Resolved July 10, 2013 at 5:23 PM
Introduce
org.hibernate.engine.internal.EntityEntryContext
,org.hibernate.engine.spi.ManagedEntity
, etc as a means to allow increased performance for Session-related memory and CPU overheads.org.hibernate.engine.internal.EntityEntryContext
is a context for maintaining the relation between an entity associated with the Session owning thisEntityEntryContext
and that entity's correspondingorg.hibernate.engine.spi.ManagedEntity
reference.org.hibernate.engine.spi.ManagedEntity
is a contract for describing an entity's association with a Session. It gives us access to information (specific to each entity instance) such as it'sorg.hibernate.engine.spi.EntityEntry
as well as defining a doubly-linked graph viaorg.hibernate.engine.spi.ManagedEntity#$$_hibernate_getPreviousManagedEntity
andorg.hibernate.engine.spi.ManagedEntity#$$_hibernate_getNextManagedEntity
There are 2 forms of
org.hibernate.engine.spi.ManagedEntity
supported. First is for the entity to implement theManagedEntity
interface, either directly or through bytecode manipulation. Second is for Hibernate to "wrap" the entity in aManagedEntity
implementation (legacy Hibernate did this anyway, in terms of wrapping the entity as it was added toIdentityMap
).An Ant task to perform enhancing was added here as well. Gradle and Maven support are tagged in and HHH-8337, respectively.
See for follow-on tasks...
Initially, this issue started as an investigation into expanding bytecode enhancement support to cover a variety of topics such as
removing load (
EntityEntry
, etc) fromPersistenceContext
- important in removing reliance onIdentityMap
and reducing Session-related memory and CPU overheadsdirtiness handling
lazy initialization - both through interception and through generated "proxies" (generated class)
bi-directional association management
anything else?
The first bullet above is the feature implemented here. The other bullets have all moved to and its sub-tasks.