[hibernate-dev] Lazy attribute loading group support
Vlad Mihalcea
mihalcea.vlad at gmail.com
Mon Nov 16 16:51:13 EST 2015
Hi,
Sounds like a good idea. I like the lazy fetch profiles. Previously it
required the Blob to be moved to a different table.
Vlad
Vlad
On Mon, Nov 16, 2015 at 11:09 PM, Steve Ebersole <steve at hibernate.org>
wrote:
> Regarding HHH-10267...
>
> 5.1 will include a new feature allowing users to specify groups for
> (bytecode enhanced) lazy attribute loading. In the original support
> accessing one of these lazy attributes forced them all to be loaded[1].
> For example...
>
> @Entity
> public class Company {
> ...
> @Basic( fetch = FetchType.LAZY )
> private String taxIdNumber;
> @Lob
> @Basic( fetch = FetchType.LAZY )
> private Blob logo;
> }
>
> Once an application accessed any of the lazy attributes, they were all
> loaded/initialized. So accessing `getTaxIdNumber()` would force `logo` to
> be fetched as well. The new feature here is the ability to segment
> attributes into different groups for lazy loading:
>
> @Entity
> public class Company {
> ...
> @Basic( fetch = FetchType.LAZY )
> private String taxIdNumber;
> @Lob
> @Basic( fetch = FetchType.LAZY )
> @LazyGroup( "lobs" )
> private Blob logo;
> }
>
> `@LazyGroup( "lobs" )` designates that `logo` is part of a specific fetch
> group. Now, when the application accesses `getTaxIdNumber()`, `logo` is no
> longer fetched at the same time.
>
> P.S. A related question is this idea of
> `@LazyToOne(LazyToOneOption.NO_PROXY)`. At the moment that is still needed
> for "legacy reasons". The underlying reason is that we don't (didn't) know
> when the to-one container is enhanced, so we rely on the user telling us.
> I'd like to plan on dropping the requirement for the user to tell us this.
> If they are using enhancement I am 99% certain they want NO_PROXY so it
> seems redundant to make them tell us. Unless I am missing some use case.
> Any thoughts?
>
> [1] Technically the legacy bytecode enhancement treated collections
> differently than other attribute types in this regard. The new enhancement
> does the same as the default.
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>
More information about the hibernate-dev
mailing list