All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hibernate.mapping.FetchProfile Maven / Gradle / Ivy

There is a newer version: 6.6.2.Final
Show newest version
/*
 * 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 .
 */
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 org.hibernate.engine.profile.FetchProfile */ public class FetchProfile { private final String name; private final MetadataSource source; private LinkedHashSet fetches = new LinkedHashSet(); /** * 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. * * @return The profile name */ public String getName() { return name; } /** * Retrieve the fetch profile source. * * @return The profile source. */ public MetadataSource getSource() { return source; } /** * Retrieve the fetches associated with this profile * * @return The fetches associated with this profile. */ public LinkedHashSet getFetches() { return fetches; } /** * 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 to 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. */ 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; } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy