JPA Interface

EntityGraph

Type Parameters:
<T> - The type of the root entity.

This type represents the root of an entity graph that will be used as a template to define the attribute nodes and boundaries of a graph of entities and entity relationships. The root must be an entity type.

The methods to add subgraphs implicitly create the corresponding attribute nodes as well; such attribute nodes should not be redundantly specified.

See Also:
AttributeNode
Subgraph
NamedEntityGraph
Since:
JPA 2.1

Public Methods

void addAttributeNodes(Attribute<T,?>... attribute)
Add one or more attribute nodes to the entity graph.
Parameters:
attribute - attribute
Throws:
IllegalStateException - if the EntityGraph has been statically defined
Since:
JPA 2.1
void addAttributeNodes(String... attributeName)
Add one or more attribute nodes to the entity graph.
Parameters:
attributeName - name of the attribute
Throws:
IllegalArgumentException - if the attribute is not an attribute of this entity.
IllegalStateException - if the EntityGraph has been statically defined
Since:
JPA 2.1
Subgraph<X> addKeySubgraph(Attribute<T,X> attribute)
Add a node to the graph that corresponds to a map key that is a managed type.
This allows for construction of multi-node entity graphs that include related managed types.
Parameters:
attribute - attribute
Return:
subgraph for the key attribute
Throws:
IllegalArgumentException - if the attribute's target type is not an entity
IllegalStateException - if this EntityGraph has been statically defined
Since:
JPA 2.1
Subgraph<?extendsX> addKeySubgraph(Attribute<T,X> attribute, Class<?extendsX> type)
Add a node to the graph that corresponds to a map key that is a managed type with inheritance.
This allows for construction of multi-node entity graphs that include related managed types. Subclass subgraphs will include the specified attributes of superclass subgraphs.
Parameters:
attribute - attribute
type - entity subclass
Return:
subgraph for the key attribute
Throws:
IllegalArgumentException - if the attribute's target type is not an entity
IllegalStateException - if this EntityGraph has been statically defined
Since:
JPA 2.1
Subgraph<X> addKeySubgraph(String attributeName)
Add a node to the graph that corresponds to a map key that is a managed type.
This allows for construction of multi-node entity graphs that include related managed types.
Parameters:
attributeName - name of the attribute
Return:
subgraph for the key attribute
Throws:
IllegalArgumentException - if the attribute is not an attribute of this entity.
IllegalArgumentException - if the attribute's target type is not an entity
IllegalStateException - if this EntityGraph has been statically defined
Since:
JPA 2.1
Subgraph<X> addKeySubgraph(String attributeName, Class<X> type)
Add a node to the graph that corresponds to a map key that is a managed type with inheritance.
This allows for construction of multi-node entity graphs that include related managed types. Subclass subgraphs will automatically include the specified attributes of superclass subgraphs
Parameters:
attributeName - name of the attribute
type - entity subclass
Return:
subgraph for the key attribute
Throws:
IllegalArgumentException - if the attribute is not an attribute of this entity.
IllegalArgumentException - if the attribute's target type is not a managed type
IllegalStateException - if this EntityGraph has been statically defined
Since:
JPA 2.1
Subgraph<?extendsT> addSubclassSubgraph(Class<?extendsT> type)
Add additional attributes to this entity graph that correspond to attributes of subclasses of this EntityGraph's entity type.
Subclass subgraphs will automatically include the specified attributes of superclass subgraphs.
Parameters:
type - entity subclass
Return:
subgraph for the subclass
Throws:
IllegalArgumentException - if the type is not an entity type
IllegalStateException - if the EntityGraph has been statically defined
Since:
JPA 2.1
Subgraph<X> addSubgraph(Attribute<T,X> attribute)
Add a node to the graph that corresponds to a managed type.
This allows for construction of multi-node entity graphs that include related managed types.
Parameters:
attribute - attribute
Return:
subgraph for the attribute
Throws:
IllegalArgumentException - if the attribute's target type is not a managed type
IllegalStateException - if the EntityGraph has been statically defined
Since:
JPA 2.1
Subgraph<?extendsX> addSubgraph(Attribute<T,X> attribute, Class<?extendsX> type)
Add a node to the graph that corresponds to a managed type with inheritance.
This allows for multiple subclass subgraphs to be defined for this node of the entity graph. Subclass subgraphs will automatically include the specified attributes of superclass subgraphs.
Parameters:
attribute - attribute
type - entity subclass
Return:
subgraph for the attribute
Throws:
IllegalArgumentException - if the attribute's target type is not a managed type
IllegalStateException - if the EntityGraph has been statically defined
Since:
JPA 2.1
Subgraph<X> addSubgraph(String attributeName)
Add a node to the graph that corresponds to a managed type.
This allows for construction of multi-node entity graphs that include related managed types.
Parameters:
attributeName - name of the attribute
Return:
subgraph for the attribute
Throws:
IllegalArgumentException - if the attribute is not an attribute of this entity.
IllegalArgumentException - if the attribute's target type is not a managed type
IllegalStateException - if the EntityGraph has been statically defined
Since:
JPA 2.1
Subgraph<X> addSubgraph(String attributeName, Class<X> type)
Add a node to the graph that corresponds to a managed type with inheritance.
This allows for multiple subclass subgraphs to be defined for this node of the entity graph. Subclass subgraphs will automatically include the specified attributes of superclass subgraphs.
Parameters:
attributeName - name of the attribute
type - entity subclass
Return:
subgraph for the attribute
Throws:
IllegalArgumentException - if the attribute is not an attribute of this managed type.
IllegalArgumentException - if the attribute's target type is not a managed type
IllegalStateException - if this EntityGraph has been statically defined
Since:
JPA 2.1
Return the attribute nodes of this entity that are included in the entity graph.
Return:
attribute nodes for the annotated entity type or empty list if none have been defined
Since:
JPA 2.1
String getName()
Return the name of a named EntityGraph (an entity graph defined by means of the NamedEntityGraph annotation, XML descriptor element, or added by means of the addNamedEntityGraph method.
Returns null if the EntityGraph is not a named EntityGraph.
Since:
JPA 2.1