Oops, sorry for the confusion. They should have referred to
Hibernate#isInitialized.
I'll fix and clarify below...
On Thu, Mar 9, 2017 at 4:58 AM, Steve Ebersole <steve(a)hibernate.org> wrote:
Your subject says `Hibernate#isInitialized` but then your examples
refer
to `Hibernate#initialize`. Which are your referring to? Because in some
cases you genuinely seem to be referring to `#initialize`, but then you
keep referring to its return value - `#initialize` has no return.
On Thu, Mar 9, 2017 at 12:27 AM Gail Badner <gbadner(a)redhat.com> wrote:
> I think there can be an inconsistency between
> Hibernate#isPropertyInitialized vs Hibernate#isInitialized when it comes
> to
> an extra-lazy collection of an enhanced entity.
>
> IIUC, after fixing HHH-11161 [1], if an extra-lazy collection is accessed
> on an enhanced entity, the collection property is set to an uninitialized
> PersistentCollection and calling Hibernate#isPropertyInitialized(
> collectionfieldName ) will return true, even though the collection itself
> is uninitialized.
>
> I would have expected that false would be returned.
>
> I've added a comment to the issue and asked Luis about it. Luis has
> pointed
> out the 3 stages of an extra-lazy collection on an enhanced entity. I've
> listed them below and added my understanding of what
> Hibernate#isInitialized
> and Hibernate#isPropertyInitialized will return in each instance:
>
> 1) the attribute is not loaded at all;
> Hibernate.isPropertyInitialized( enhancedEntity,
> "extraLazyCollection" )
> returns false;
> (I am skipping an example of calling Hibernate.isInitialized(
> enhancedEntity.getExtraLazyCollection() )
>
here because by calling enhancedEntity.getExtraLazyCollection(),
the
property becomes initalized
with an uninitialized PersistentCollection, so it will be in the
state described as 2).
2) the attribute is loaded, but the elements are not loaded;
> Hibernate.isPropertyInitialized( enhancedEntity,
> "extraLazyCollection" )
> returns true,
> because the property is initialized to a PersistentCollection (even
> though the PersistentCollection itself is uninitialized).
> Hibernate.isInitialized( enhancedEntity.getExtraLazyCollection() )
> returns
> false.
>
3) the attribute is loaded and the elements are loaded.
> Hibernate.isPropertyInitialized( enhancedEntity, "extraLazyCollection"
> )
> returns true.
> Hibernate.isInitialized( enhancedEntity.getExtraLazyCollection() )
> returns
> true.
>
> Opinions about the inconsistency in 2)? Is this a bug in the code or in
> the
> Javadoc?
>
> Thanks,
> Gail
>
> [1]
https://hibernate.atlassian.net/browse/HHH-11161
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
>