Package org.hibernate.graph
Class EntityGraphs
- java.lang.Object
-
- org.hibernate.graph.EntityGraphs
-
public final class EntityGraphs extends Object
A collection ofEntityGraph
utilities.- API Note:
- These methods really belong inside other classes that we cannot modify.
-
-
Constructor Summary
Constructors Constructor Description EntityGraphs()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
areEqual(AttributeNode<?> a, AttributeNode<?> b)
Compares two entity graph attribute node and returnstrue
if they are equal, ignoring subgraph attribute order.static <T> boolean
areEqual(EntityGraph<T> a, EntityGraph<T> b)
Compares two entity graphs and returnstrue
if they are equal, ignoring attribute order.static boolean
areEqual(Subgraph a, Subgraph b)
Compares two entity subgraphs and returnstrue
if they are equal, ignoring attribute order.static boolean
areEqual(Map<Class,Subgraph> a, Map<Class,Subgraph> b)
Compares two entity subgraph maps and returnstrue
if they are equal, ignoring order.static List
executeList(Query query, EntityGraph graph)
Convenience method for executing the query using the givenEntityGraph
.static List
executeList(Query query, EntityGraph graph, String semanticJpaHintName)
Convenience method for executing the query, applying the givenEntityGraph
using the named semantic using JPA's "hint name".static List
executeList(Query query, EntityGraph graph, GraphSemantic semantic)
Convenience method for executing the query, applying the givenEntityGraph
using the specified semanticstatic <R> List<R>
executeList(TypedQuery<R> query, EntityGraph<R> graph)
Form ofexecuteList(Query, EntityGraph, String)
accepting aTypedQuery
.static <R> List<R>
executeList(TypedQuery<R> query, EntityGraph<R> graph, String semanticJpaHintName)
Form ofexecuteList(Query, EntityGraph, String)
accepting aTypedQuery
.static <R> List<R>
executeList(TypedQuery<R> query, EntityGraph<R> graph, GraphSemantic semantic)
Form ofexecuteList(Query, EntityGraph, GraphSemantic)
accepting aTypedQuery
.static <T> EntityGraph<T>
merge(EntityManager em, Class<T> rootType, EntityGraph<T>... graphs)
Merges multiple entity graphs into a single graph that specifies the fetching/loading of all attributes the input graphs specify.static <T> EntityGraph<T>
merge(SessionImplementor session, Class<T> rootType, GraphImplementor<T>... graphs)
static <T> EntityGraph<T>
merge(Session session, Class<T> rootType, Graph<T>... graphs)
-
-
-
Method Detail
-
merge
public static <T> EntityGraph<T> merge(EntityManager em, Class<T> rootType, EntityGraph<T>... graphs)
Merges multiple entity graphs into a single graph that specifies the fetching/loading of all attributes the input graphs specify.- Type Parameters:
T
- Root entity type of the query and graph.- Parameters:
em
- EntityManager to use to create the new merged graph.rootType
- Root type of the entity for which the graph is being merged.graphs
- Graphs to merge.- Returns:
- The merged graph.
-
merge
@SafeVarargs public static <T> EntityGraph<T> merge(Session session, Class<T> rootType, Graph<T>... graphs)
-
merge
@SafeVarargs public static <T> EntityGraph<T> merge(SessionImplementor session, Class<T> rootType, GraphImplementor<T>... graphs)
-
executeList
public static List executeList(Query query, EntityGraph graph, GraphSemantic semantic)
Convenience method for executing the query, applying the givenEntityGraph
using the specified semantic- Parameters:
query
- The JPA Querygraph
- The graph to applysemantic
- The semantic to use when applying the graph
-
executeList
public static <R> List<R> executeList(TypedQuery<R> query, EntityGraph<R> graph, GraphSemantic semantic)
Form ofexecuteList(Query, EntityGraph, GraphSemantic)
accepting aTypedQuery
.- Parameters:
query
- The JPA Querygraph
- The graph to applysemantic
- The semantic to use when applying the graph- API Note:
- This signature assumes that the Query's return is an entity and that the graph applies to that entity's type. JPA does not necessarily require that, but it is by far the most common usage.
-
executeList
public static List executeList(Query query, EntityGraph graph, String semanticJpaHintName)
Convenience method for executing the query, applying the givenEntityGraph
using the named semantic using JPA's "hint name". SeeGraphSemantic.fromHintName(java.lang.String)
.- Parameters:
query
- The JPA Querygraph
- The graph to applysemanticJpaHintName
- SeeGraphSemantic.fromHintName(java.lang.String)
- Returns:
- The result list
-
executeList
public static <R> List<R> executeList(TypedQuery<R> query, EntityGraph<R> graph, String semanticJpaHintName)
Form ofexecuteList(Query, EntityGraph, String)
accepting aTypedQuery
.- Parameters:
query
- The JPA Querygraph
- The graph to applysemanticJpaHintName
- SeeGraphSemantic.fromHintName(java.lang.String)
- API Note:
- This signature assumes that the Query's return is an entity and that the graph applies to that entity's type. JPA does not necessarily require that, but it is by far the most common usage.
-
executeList
public static List executeList(Query query, EntityGraph graph)
Convenience method for executing the query using the givenEntityGraph
.- Parameters:
query
- The JPA Querygraph
- The graph to apply- API Note:
- Operates on the assumption that the "default" semantic for an
entity graph applied to a query is
GraphSemantic.FETCH
. This is simply knowledge from JPA EG discussions, nothing that is specifically mentioned or discussed in the spec.
-
executeList
public static <R> List<R> executeList(TypedQuery<R> query, EntityGraph<R> graph)
Form ofexecuteList(Query, EntityGraph, String)
accepting aTypedQuery
.- Parameters:
query
- The JPA Querygraph
- The graph to apply- API Note:
- This signature assumes that the Query's return is an entity and that the graph applies to that entity's type. JPA does not necessarily require that, but it is by far the most common usage.
-
areEqual
public static <T> boolean areEqual(EntityGraph<T> a, EntityGraph<T> b)
Compares two entity graphs and returnstrue
if they are equal, ignoring attribute order.- Type Parameters:
T
- Root entity type of BOTH graphs.- Parameters:
a
- Graph to compare.b
- Graph to compare.
-
areEqual
public static boolean areEqual(AttributeNode<?> a, AttributeNode<?> b)
Compares two entity graph attribute node and returnstrue
if they are equal, ignoring subgraph attribute order.
-
areEqual
public static boolean areEqual(Map<Class,Subgraph> a, Map<Class,Subgraph> b)
Compares two entity subgraph maps and returnstrue
if they are equal, ignoring order.
-
-