Skip to content

FORCE_LAZY_LOADING can cause useless session if FetchMode is set to JOIN #128

Open
@pip8786

Description

@pip8786

I have an ElementCollection on my object that is defaulting to lazy loading, but in my Criteria I've set the FetchMode to Join, which initializes the collection. While this causes the initialization of the collection to be identical to FetchType.Eager on the collection itself, it's marked at using lazy loading and therefore falls into the code linked here:

if (!Feature.FORCE_LAZY_LOADING.enabledIn(_features) && !coll.wasInitialized()) {
return null;
}
if (_sessionFactory != null) {
// 08-Feb-2017, tatu: and not closing this is not problematic... ?
Session session = openTemporarySessionForLoading(coll);
initializeCollection(coll, session);
}
return coll.getValue();

I think getting to this point is fine, but shouldn't it be checked that !coll.wasInitialized() on line 290, prior to opening a temporary session that will essentially do nothing since the collection is already initialized?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions