Class EntityGraphs

java.lang.Object
org.hibernate.graph.EntityGraphs

public final class EntityGraphs extends Object
A collection of EntityGraph utilities.
API Note:
These methods really belong inside other classes that we cannot modify.
  • Constructor Details

    • EntityGraphs

      public EntityGraphs()
  • Method Details

    • 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 given EntityGraph using the specified semantic
      Parameters:
      query - The JPA Query
      graph - The graph to apply
      semantic - The semantic to use when applying the graph
    • executeList

      public static <R> List<R> executeList(TypedQuery<R> query, EntityGraph<R> graph, GraphSemantic semantic)
      Parameters:
      query - The JPA Query
      graph - The graph to apply
      semantic - 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 given EntityGraph using the named semantic using JPA's "hint name". See GraphSemantic.fromHintName(java.lang.String).
      Parameters:
      query - The JPA Query
      graph - The graph to apply
      semanticJpaHintName - See GraphSemantic.fromHintName(java.lang.String)
      Returns:
      The result list
    • executeList

      public static <R> List<R> executeList(TypedQuery<R> query, EntityGraph<R> graph, String semanticJpaHintName)
      Parameters:
      query - The JPA Query
      graph - The graph to apply
      semanticJpaHintName - See GraphSemantic.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 given EntityGraph.
      Parameters:
      query - The JPA Query
      graph - 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)
      Parameters:
      query - The JPA Query
      graph - 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 returns true 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 returns true 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 returns true if they are equal, ignoring order.
    • areEqual

      public static boolean areEqual(Subgraph a, Subgraph b)
      Compares two entity subgraphs and returns true if they are equal, ignoring attribute order.