com.mysema.query.jpa.JPACommonQuery Maven / Gradle / Ivy
/*
* Copyright 2011, Mysema Ltd
*
* 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.mysema.query.jpa;
import com.mysema.query.Query;
import com.mysema.query.types.CollectionExpression;
import com.mysema.query.types.EntityPath;
import com.mysema.query.types.MapExpression;
import com.mysema.query.types.Path;
import com.mysema.query.types.Predicate;
/**
* JPACommonQuery is a common interface for queries and subqueries of this module
*
* @author tiwe
*
* @param
*/
public interface JPACommonQuery> extends Query {
/**
* Set the sources of this query
*
* @param sources
* @return
*/
Q from(EntityPath>... sources);
/**
* Create a inner join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
*
* @param
* @param target
* @return
*/
Q innerJoin(EntityPath
target);
/**
* Create a inner join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q innerJoin(EntityPath
target, Path
alias);
/**
* Create a inner join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q innerJoin(CollectionExpression, P> target);
/**
* Create a inner join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q innerJoin(CollectionExpression,P> target, Path
alias);
/**
* Create a inner join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q innerJoin(MapExpression, P> target);
/**
* Create a inner join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q innerJoin(MapExpression, P> target, Path
alias);
/**
* Create a join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q join(EntityPath
target);
/**
* Create a join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q join(EntityPath
target, Path
alias);
/**
* Create a join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q join(CollectionExpression,P> target);
/**
* @param
* @param target
* @param alias
* @return
*/
Q join(CollectionExpression,P> target, Path
alias);
/**
* Create a join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q join(MapExpression, P> target);
/**
* Create a join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q join(MapExpression, P> target, Path
alias);
/**
* Create a left join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q leftJoin(EntityPath
target);
/**
* Create a left join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q leftJoin(EntityPath
target, Path
alias);
/**
* Create a left join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q leftJoin(CollectionExpression,P> target);
/**
* Create a left join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q leftJoin(CollectionExpression,P> target, Path
alias);
/**
* Create a left join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q leftJoin(MapExpression, P> target);
/**
* Create a left join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q leftJoin(MapExpression, P> target, Path
alias);
/**
* Create a right join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q rightJoin(EntityPath
target);
/**
* Create a right join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q rightJoin(EntityPath
target, Path
alias);
/**
* Create a right join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q rightJoin(CollectionExpression,P> target);
/**
* Create a right join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q rightJoin(CollectionExpression,P> target, Path
alias);
/**
* Create a right join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q rightJoin(MapExpression, P> target);
/**
* Create a right join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q rightJoin(MapExpression, P> target, Path
alias);
/**
* Create a full join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q fullJoin(EntityPath
target);
/**
* Create a full join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q fullJoin(EntityPath
target, Path
alias);
/**
* Create a full join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q fullJoin(CollectionExpression,P> target);
/**
* Create a full join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q fullJoin(CollectionExpression,P> target, Path
alias);
/**
* Create a full join with the given target.
* Use fetch() to add the fetch parameter to this join.
*
* @param
* @param target
* @return
*/
Q fullJoin(MapExpression, P> target);
/**
* Create a full join with the given target and alias.
*
* @param
* @param target
* @param alias
* @return
*/
Q fullJoin(MapExpression, P> target, Path
alias);
/**
* Add join conditions to the last added join
*
* @param condition
* @return
*/
Q on(Predicate... condition);
}