Our app fails to scale sufficiently and I'd traced our problems to eager 
loading of all OneToOne relations when any single one is accessed. I would like 
to fix that but wanted to get feedback first. I'm referring to Hibernate Core 
3.3.1.GA below:

Currently in AbstractFieldInterceptor.intercept():
"uninitializedFields = null; //let's assume that there is only one lazy fetch 
group, for now!"

proposed fix: 
-after 'result' is returned call uninitializedFields.remove(fieldname). 
Question: should this only be done if result != null?

And then AbstractEntityPersister.initializeLazyProperties() calls methods that 
initialize *all* properties even though a specific fieldname is supplied:
* initializeLazyPropertiesFromDatastore or
* initializeLazyPropertiesFromCache

Proposed fix:
-In both cases, determine appropriate 'j' value by searching lazyPropertyNames 
for 'fieldName'
-only call nullSafeGet, and initializeLazyProperty( fieldName, entity, session, 
snapshot, j, propValue ) once.


What do folks think?

Thanks,
-nikita


_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to