org.hibernate.FetchMode Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate Show documentation
Show all versions of hibernate Show documentation
Relational Persistence for Java
//$Id: FetchMode.java 5060 2004-12-24 03:11:05Z oneovthafew $
package org.hibernate;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
/**
* Represents an association fetching strategy. This is used
* together with the Criteria API to specify runtime
* fetching strategies.
*
* For HQL queries, use the FETCH keyword instead.
*
* @see Criteria#setFetchMode(java.lang.String, FetchMode)
* @author Gavin King
*/
public final class FetchMode implements Serializable {
private final String name;
private static final Map INSTANCES = new HashMap();
private FetchMode(String name) {
this.name=name;
}
public String toString() {
return name;
}
/**
* Default to the setting configured in the mapping file.
*/
public static final FetchMode DEFAULT = new FetchMode("DEFAULT");
/**
* Fetch using an outer join. Equivalent to fetch="join".
*/
public static final FetchMode JOIN = new FetchMode("JOIN");
/**
* Fetch eagerly, using a separate select. Equivalent to
* fetch="select".
*/
public static final FetchMode SELECT = new FetchMode("SELECT");
/**
* Fetch lazily. Equivalent to outer-join="false".
* @deprecated use FetchMode.SELECT
*/
public static final FetchMode LAZY = SELECT;
/**
* Fetch eagerly, using an outer join. Equivalent to
* outer-join="true".
* @deprecated use FetchMode.JOIN
*/
public static final FetchMode EAGER = JOIN;
static {
INSTANCES.put( JOIN.name, JOIN );
INSTANCES.put( SELECT.name, SELECT );
INSTANCES.put( DEFAULT.name, DEFAULT );
}
private Object readResolve() {
return INSTANCES.get(name);
}
}