@Override public PrefetchTreeNode getPrefetchTree() { return query.getPrefetchTree(); }
private boolean resolvesFirstPage() { return internalQuery.getPrefetchTree() == null; }
public boolean startUnknownPrefetch(PrefetchTreeNode node) { // don't do anything to root if (node == query.getPrefetchTree()) { return true; } // route unknown as disjoint... return startDisjointPrefetch(node); }
public boolean startUnknownPrefetch(PrefetchTreeNode node) { // don't do anything to root if (node == query.getPrefetchTree()) { return true; } // route unknown as disjoint... return startDisjointPrefetch(node); }
/** * Returns a collection of String paths indicating relationships to objects that are * prefetched together with this query. * * @deprecated since 1.2 use 'getPrefetchTree' to explore prefetches. */ public Collection getPrefetches() { if (getPrefetchTree() != null) { Collection nodes = getPrefetchTree().nonPhantomNodes(); Collection paths = new ArrayList(nodes.size()); Iterator it = nodes.iterator(); while (it.hasNext()) { paths.add(((PrefetchTreeNode) it.next()).getPath()); } return paths; } return Collections.EMPTY_LIST; }
/** * Routes query prefetches, but not the query itself. */ void route(SelectQuery query, QueryRouter router, EntityResolver resolver) { if (!query.isFetchingDataRows() && query.getPrefetchTree() != null) { this.query = query; this.router = router; this.resolver = resolver; this.classDescriptor = query.getMetaData(resolver).getClassDescriptor(); query.getPrefetchTree().traverse(this); } }
SelectQuery<Persistent> createSelectQuery(ObjEntity entity, List<Expression> expressions) { SelectQuery<Persistent> query = new SelectQuery<>(entity, ExpressionFactory.joinExp(Expression.OR, expressions)); if (entity.equals(rootEntity)) { query.setPrefetchTree(internalQuery.getPrefetchTree()); } return query; }
/** * Routes query prefetches, but not the query itself. */ void route(SelectQuery query, QueryRouter router, EntityResolver resolver) { if (!query.isFetchingDataRows() && query.getPrefetchTree() != null) { this.query = query; this.router = router; this.resolver = resolver; this.entity = query.getMetaData(resolver).getObjEntity(); this.inheritanceTree = resolver.lookupInheritanceTree(entity); query.getPrefetchTree().traverse(this); } }
public void validateObject(ProjectPath treeNodePath, Validator validator) { SelectQuery query = (SelectQuery) treeNodePath.getObject(); validateName(query, treeNodePath, validator); // Resolve root to Entity for further validation Entity root = validateRoot(query, treeNodePath, validator); // validate path-based parts if (root != null) { validateQualifier(root, query.getQualifier(), treeNodePath, validator); Iterator orderings = query.getOrderings().iterator(); while (orderings.hasNext()) { validateOrdering( root, (Ordering) orderings.next(), treeNodePath, validator); } if (query.getPrefetchTree() != null) { Iterator prefetches = query .getPrefetchTree() .nonPhantomNodes() .iterator(); while (prefetches.hasNext()) { validatePrefetch(root, ((PrefetchTreeNode) prefetches.next()) .getPath(), treeNodePath, validator); } } } }
query.setPrefetchTree(internalQuery.getPrefetchTree());
SelectQuery<Object> createSelectQuery(List<Expression> expressions) { SelectQuery<Object> query = new SelectQuery<>(rootEntity, ExpressionFactory.joinExp(Expression.OR, expressions)); query.setFetchingDataRows(internalQuery.isFetchingDataRows()); if (!query.isFetchingDataRows()) { query.setPrefetchTree(internalQuery.getPrefetchTree()); } return query; }
if(query.getPrefetchTree() != null) { query.getPrefetchTree().traverse(new ToCacheKeyPrefetchProcessor(key));
QueryMetadata metadata = query.getMetaData(getEntityResolver()); Collection prefetches = metadata.getPrefetchTree() != null ? query .getPrefetchTree() .nonPhantomNodes() : Collections.EMPTY_LIST;
if (query.getPrefetchTree() != null) { .getPrefetchTree() .adjacentJointNodes() .iterator();
SelectQuery select = (SelectQuery) query; this.internalQuery.setPrefetchTree(select.getPrefetchTree()); if (select.getPrefetchTree() != null) {
public boolean startDisjointPrefetch(PrefetchTreeNode node) { if (node == query.getPrefetchTree()) { return true;
if(query.getPrefetchTree() != null) { for (PrefetchTreeNode prefetch : query.getPrefetchTree().adjacentJointNodes()) {
@Test public void testBuildQuery_Prefetches() { SelectQuery<E2> query = new SelectQuery<E2>(E2.class); ResourceEntity<E2> resultFilter = getResourceEntity(E2.class); AgRelationship incoming = resultFilter.getAgEntity().getRelationship(E2.E3S.getName()); @SuppressWarnings("unchecked") AgPersistentEntity<E3> target = Mockito.mock(AgPersistentEntity.class); resultFilter.getChildren().put(E2.E3S.getName(), new ResourceEntity<E3>(target, incoming)); SelectContext<E2> context = new SelectContext<E2>(E2.class); context.setEntity(resultFilter); context.setSelect(query); SelectQuery<E2> amended = makeQueryStage.buildQuery(context); assertSame(query, amended); PrefetchTreeNode rootPrefetch = amended.getPrefetchTree(); assertNotNull(rootPrefetch); assertEquals(1, rootPrefetch.getChildren().size()); PrefetchTreeNode child1 = rootPrefetch.getChildren().iterator().next(); assertEquals(E2.E3S.getName(), child1.getPath()); }
public boolean startDisjointPrefetch(PrefetchTreeNode node) { if (node == query.getPrefetchTree()) { return true;
if (query.getPrefetchTree() != null) { for(PrefetchTreeNode prefetch : query.getPrefetchTree().getChildren()) { prefetch.setEntityName(oe.getName()); for (PrefetchTreeNode prefetch : query.getPrefetchTree().adjacentJointNodes()) {