private static void ensureAvailable() { if (!isAvailable()) { throw new EntityGraphException("Class java.persistence.EntityGraph is not available. " + "Does your PersistenceProvider support JPA 2.1?"); } }
private static Object createEntityGraph(EntityManager em, Class<?> entityClass) { return uncheckedInvoke(EM_CREATE_ENTITY_GRAPH, em, entityClass); }
public static Object getEntityGraph(EntityManager em, Class<?> entityClass, EntityGraph entityGraphAnn) { ensureAvailable(); String graphName = entityGraphAnn.value(); if (graphName.isEmpty()) { return buildEntityGraph(em, entityClass, entityGraphAnn.paths()); } else { return uncheckedInvoke(EM_GET_ENTITY_GRAPH, em, graphName); } }
private void applyEntityGraph(Query query, Method method) { EntityGraph entityGraphAnn = method.getAnnotation(EntityGraph.class); if (entityGraphAnn == null) { return; } Object graph = EntityGraphHelper.getEntityGraph(getEntityManager(), entityClass, entityGraphAnn); query.setHint(entityGraphAnn.type().getHintName(), graph); }
private static Object buildEntityGraph(EntityManager em, Class<?> entityClass, String[] attributePaths) Object graph = createEntityGraph(em, entityClass); List<String> paths = new ArrayList<String>(Arrays.asList(attributePaths)); Object parent = addSubgraph(graph, segments[0]); addSubgraph(parent, segments[i]); addAttributeNodes(parent, segments[segments.length - 1]); addAttributeNodes(graph, path);
private void applyEntityGraph(Query query, Method method) { EntityGraph entityGraphAnn = method.getAnnotation(EntityGraph.class); if (entityGraphAnn == null) { return; } Object graph = EntityGraphHelper.getEntityGraph(getEntityManager(), entityClass, entityGraphAnn); query.setHint(entityGraphAnn.type().getHintName(), graph); }
private static Object addSubgraph(Object graph, String attributeName) { if (ENTITY_GRAPH_CLASS.isInstance(graph)) { return uncheckedInvoke(EG_ADD_SUBGRAPH, graph, attributeName); } else if (SUBGRAPH_CLASS.isInstance(graph)) { return uncheckedInvoke(SUBGRAPH_ADD_SUBGRAPH, graph, attributeName); } return null; }
private void applyEntityGraph(Query query, Method method) { EntityGraph entityGraphAnn = method.getAnnotation(EntityGraph.class); if (entityGraphAnn == null) { return; } Object graph = EntityGraphHelper.getEntityGraph(getEntityManager(), entityClass, entityGraphAnn); query.setHint(entityGraphAnn.type().getHintName(), graph); }
private static void addAttributeNodes(Object graph, String attributeName) { if (ENTITY_GRAPH_CLASS.isInstance(graph)) { uncheckedInvoke(EG_ADD_ATTRIBUTE_NODES, graph, new Object[] { new String[] { attributeName } }); } else if (SUBGRAPH_CLASS.isInstance(graph)) { uncheckedInvoke(SUBGRAPH_ADD_ATTRIBUTE_NODES, graph, new Object[] { new String[] { attributeName } }); } }
private void applyEntityGraph(Query query, Method method) { EntityGraph entityGraphAnn = method.getAnnotation(EntityGraph.class); if (entityGraphAnn == null) { return; } Object graph = EntityGraphHelper.getEntityGraph(getEntityManager(), repositoryMetadata.getEntityMetadata().getEntityClass(), entityGraphAnn); query.setHint(entityGraphAnn.type().getHintName(), graph); }
private void applyEntityGraph(Query query, Method method) { EntityGraph entityGraphAnn = method.getAnnotation(EntityGraph.class); if (entityGraphAnn == null) { return; } Object graph = EntityGraphHelper.getEntityGraph(getEntityManager(), getRepositoryMetadata().getEntityMetadata().getEntityClass(), entityGraphAnn); query.setHint(entityGraphAnn.type().getHintName(), graph); }
private void applyEntityGraph(Query query, Method method) { EntityGraph entityGraphAnn = method.getAnnotation(EntityGraph.class); if (entityGraphAnn == null) { return; } Object graph = EntityGraphHelper.getEntityGraph(getEntityManager(), getRepositoryMetadata().getEntityMetadata().getEntityClass(), entityGraphAnn); query.setHint(entityGraphAnn.type().getHintName(), graph); }