[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-3414) fetch profiles

Steve Ebersole (JIRA) noreply at atlassian.com
Wed Feb 8 19:56:10 EST 2012


    [ https://hibernate.onjira.com/browse/HHH-3414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=45427#comment-45427 ] 

Steve Ebersole commented on HHH-3414:
-------------------------------------

Tedi, this is true in all cases for attempts to fetch multiple bags.  There is another issue in JIRA that details what I would eventually like to do in terms of semi-allowing this.  Basically instead of join fetching we'd silently fall back to subselect fetching.  But there are a lot of pre-req changes that have to happen to get there.

> fetch profiles
> --------------
>
>                 Key: HHH-3414
>                 URL: https://hibernate.onjira.com/browse/HHH-3414
>             Project: Hibernate ORM
>          Issue Type: New Feature
>          Components: core, metamodel
>            Reporter: Steve Ebersole
>            Assignee: Steve Ebersole
>
> The concept of fetch profiles as we are discussing here is basically to allow users to dynamically affect the mapped fetching strategy for associations at runtime.
> Consider the following example:
> <class name="Person">
>     ...
>     <set name="addresses" lazy="true" fetch="subselect" ...>
>         ...
>     </set>
> </class>
> <class name="Address">
>     ...
> </class>
> This follows the normal recommendation to map associations as lazy and use a dynamic fetching strategy (ala HQL/Criteria) to modify this lazy behavior at runtime.
> The fetaure discussed here would allow the same behavior for loading as well:
> <hibernate-mapping>
>     <fetch-profile name="person-details">
>         <fetch path="Person.addresses" style="join"/>
>     </fetch-profile>
> </hibernate-mapping>
> Or:
> <hibernate-mapping>
> <class name="Person">
>     ...
>     <fetch-profile name="person-details">
>         <fetch path="addresses" style="join"/>
>     </fetch-profile>
>     <set name="addresses" lazy="true" fetch="subselect" ...>
>         ...
>     </set>
> </class>
> </hibernate-mapping>
> Now, doing:
> session.enableFetchProfile( "person-details" ).get( Person.class, 1 )...
> will load Person#1 as well as their addresses in a single joined query.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list