javax.persistence.criteria.FetchParent Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javax.persistence Show documentation
Show all versions of javax.persistence Show documentation
The Java Persistence API (JPA) : a standard interface-based Java model abstraction of persistence, developed by the JCP.
/*
* Copyright (c) 2008, 2009, 2011 Oracle, Inc. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution. The Eclipse Public License is available
* at http://www.eclipse.org/legal/epl-v10.html and the Eclipse Distribution License
* is available at http://www.eclipse.org/org/documents/edl-v10.php.
*/
package javax.persistence.criteria;
import javax.persistence.metamodel.PluralAttribute;
import javax.persistence.metamodel.SingularAttribute;
/**
* Represents an element of the from clause which may function as the parent of Fetches.
* @param the source type
* @param the target type
* @since Java Persistence 2.0
*/
public interface FetchParent
{
/**
* Return the fetch joins that have been made from this type. Returns empty set if no fetch joins have
* been made from this type. Modifications to the set do not affect the query.
* @return fetch joins made from this type
*/
java.util.Set> getFetches();
/**
* Create a fetch join to the specified single-valued attribute using an inner join.
* @param attribute target of the join
* @return the resulting fetch join
* @param Type
*/
Fetch fetch(SingularAttribute super X, Y> attribute);
/**
* Create a fetch join to the specified single-valued attribute using the given join type.
* @param attribute target of the join
* @param jt join type
* @return the resulting fetch join
* @param Type
*/
Fetch fetch(SingularAttribute super X, Y> attribute, JoinType jt);
/**
* Create a fetch join to the specified collection-valued attribute using an inner join.
* @param attribute target of the join
* @return the resulting join
* @param Type
*/
Fetch fetch(PluralAttribute super X, ?, Y> attribute);
/**
* Create a fetch join to the specified collection-valued attribute using the given join type.
* @param attribute target of the join
* @param jt join type
* @return the resulting join
* @param Type
*/
Fetch fetch(PluralAttribute super X, ?, Y> attribute, JoinType jt);
// String-based:
/**
* Create a fetch join to the specified attribute using an inner join.
* @param attributeName name of the attribute for the target of the join
* @return the resulting fetch join
* @throws IllegalArgumentException if attribute of the given name does not exist
* @param Type
* @param Type
*/
@SuppressWarnings("hiding")
Fetch fetch(String attributeName);
/**
* Create a fetch join to the specified attribute using the given join type.
* @param attributeName name of the attribute for the target of the join
* @param jt join type
* @return the resulting fetch join
* @throws IllegalArgumentException if attribute of the given name does not exist
* @param Type
* @param Type
*/
@SuppressWarnings("hiding")
Fetch fetch(String attributeName, JoinType jt);
}