/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.mapping;
import java.util.LinkedHashSet;

A fetch profile allows a user to dynamically modify the fetching strategy used for particular associations at runtime, whereas that information was historically only statically defined in the metadata.

This class represent the data as it is defined in their metadata.
Author:Steve Ebersole
See Also:
/** * A fetch profile allows a user to dynamically modify the fetching strategy used for particular associations at * runtime, whereas that information was historically only statically defined in the metadata. * <p/> * This class represent the data as it is defined in their metadata. * * @author Steve Ebersole * * @see org.hibernate.engine.profile.FetchProfile */
public class FetchProfile { private final String name; private final MetadataSource source; private LinkedHashSet<Fetch> fetches = new LinkedHashSet<Fetch>();
Create a fetch profile representation.
Params:
  • name – The name of the fetch profile.
  • source – The source of the fetch profile (where was it defined).
/** * Create a fetch profile representation. * * @param name The name of the fetch profile. * @param source The source of the fetch profile (where was it defined). */
public FetchProfile(String name, MetadataSource source) { this.name = name; this.source = source; }
Retrieve the name of the fetch profile.
Returns:The profile name
/** * Retrieve the name of the fetch profile. * * @return The profile name */
public String getName() { return name; }
Retrieve the fetch profile source.
Returns:The profile source.
/** * Retrieve the fetch profile source. * * @return The profile source. */
public MetadataSource getSource() { return source; }
Retrieve the fetches associated with this profile
Returns:The fetches associated with this profile.
/** * Retrieve the fetches associated with this profile * * @return The fetches associated with this profile. */
public LinkedHashSet<Fetch> getFetches() { return fetches; }
Adds a fetch to this profile.
Params:
  • entity – The entity which contains the association to be fetched
  • association – The association to fetch
  • style – The style of fetch t apply
/** * Adds a fetch to this profile. * * @param entity The entity which contains the association to be fetched * @param association The association to fetch * @param style The style of fetch t apply */
public void addFetch(String entity, String association, String style) { fetches.add( new Fetch( entity, association, style ) ); } @Override public boolean equals(Object o) { if ( this == o ) { return true; } if ( o == null || getClass() != o.getClass() ) { return false; } FetchProfile that = ( FetchProfile ) o; return name.equals( that.name ); } @Override public int hashCode() { return name.hashCode(); }
Defines an individual association fetch within the given profile.
/** * Defines an individual association fetch within the given profile. */
public static class Fetch { private final String entity; private final String association; private final String style; public Fetch(String entity, String association, String style) { this.entity = entity; this.association = association; this.style = style; } public String getEntity() { return entity; } public String getAssociation() { return association; } public String getStyle() { return style; } } }