/* * Copyright 2015, The Querydsl Team (http://www.querydsl.com/team) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.querydsl.jdo; import java.io.Closeable; import javax.jdo.PersistenceManager; import com.querydsl.core.FetchableQuery; import com.querydsl.core.Query; import com.querydsl.core.support.ExtendedSubQuery; import com.querydsl.core.types.CollectionExpression; import com.querydsl.core.types.EntityPath; import com.querydsl.core.types.Path; /** * Query interface for JDOQL queries * * @author tiwe * * @param <T> result type */ public interface JDOQLQuery<T> extends FetchableQuery<T, JDOQLQuery<T>>, Query<JDOQLQuery<T>>, ExtendedSubQuery<T>, Closeable { /** * Add query sources * * @param sources sources * @return the current object */ JDOQLQuery<T> from(EntityPath<?>... sources); /** * Add query sources * * @param path source * @param alias alias * @param <U> * @return the current object */ <U> JDOQLQuery<T> from(CollectionExpression<?, U> path, Path<U> alias); /** * Clone the state of the query for the given PersistenceManager * * @param persistenceManager persistence manager * @return cloned query */ JDOQLQuery<T> clone(PersistenceManager persistenceManager); /** * Add the fetch group to the set of active fetch groups. * * @param fetchGroupName fetch group name * @return the current object */ JDOQLQuery<T> addFetchGroup(String fetchGroupName); /** * Set the maximum fetch depth when fetching. * A value of 0 has no meaning and will throw a JDOUserException. * A value of -1 means that no limit is placed on fetching. * A positive integer will result in that number of references from the * initial object to be fetched. * * @param maxFetchDepth max fetch depth * @return the current object */ JDOQLQuery<T> setMaxFetchDepth(int maxFetchDepth); /** * Close the query and related resources */ @Override void close(); }