Class FetchProfile

java.lang.Object
org.hibernate.engine.profile.FetchProfile
Direct Known Subclasses:
DefaultFetchProfile

public class FetchProfile extends Object
The runtime representation of a Hibernate fetch profile defined in annotations.

Fetch profiles compete with JPA-defined named entity graphs. The semantics of these two facilities are not identical, however, since a fetch profile is a list, not a graph, and is not by nature rooted at any one particular entity. Instead, given a root entity as input, an active fetch profile contributes to the determination of the fetch graph.

A named fetch profile may be enabled in a given session by calling Session.enableFetchProfile(String).

See Also:
  • Constructor Details

    • FetchProfile

      public FetchProfile(String name)
      Constructs a FetchProfile with the given unique name. Fetch profile names must be unique within a given SessionFactory.
      Parameters:
      name - The name under which we are bound in the sessionFactory
  • Method Details

    • addFetch

      @Internal public void addFetch(Fetch fetch)
      Add a fetch override to the profile.
      Parameters:
      fetch - The fetch override to add.
    • getName

      public String getName()
      The name of this fetch profile
    • getFetches

      public Map<String,Fetch> getFetches()
      A map of Fetch instances, keyed by association role
    • getFetchByRole

      public @Nullable Fetch getFetchByRole(String role)
      Obtain the fetch override associated with the given role.
      Parameters:
      role - The role name identifying the association
      Returns:
      The Fetch, or null if there was no Fetch for the given association
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • hasSubselectLoadableCollectionsEnabled

      public boolean hasSubselectLoadableCollectionsEnabled(EntityPersister persister)