All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.querydsl.sql.SQLCommonQueryFactory Maven / Gradle / Ivy

The newest version!
/*
 * 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.sql;

import com.querydsl.core.QueryFactory;
import com.querydsl.core.types.Expression;
import com.querydsl.core.types.Path;
import com.querydsl.core.types.SubQueryExpression;
import com.querydsl.sql.dml.SQLDeleteClause;
import com.querydsl.sql.dml.SQLInsertClause;
import com.querydsl.sql.dml.SQLMergeClause;
import com.querydsl.sql.dml.SQLUpdateClause;

/**
 * Factory interface for query and clause creation.
 *
 * 

The default implementation is {@link SQLQueryFactory} and should be used for general * query creation. Type specific variants are available if database specific queries need to be created.

* * @author tiwe * * @param query type * @param delete clause type * @param update clause type * @param insert clause type * @param merge clause type */ public interface SQLCommonQueryFactory, // extends AbstractSQLQuery D extends SQLDeleteClause, U extends SQLUpdateClause, I extends SQLInsertClause, M extends SQLMergeClause> extends QueryFactory { /** * Create a new DELETE clause * * @param path table to delete from * @return delete clause */ D delete(RelationalPath path); /** * Create a new SELECT query * * @param from query source * @return query */ Q from(Expression from); /** * Create a new SELECT query * * @param from query sources * @return query */ Q from(Expression... from); /** * Create a new SELECT query * * @param subQuery query source * @param alias alias * @return query */ Q from(SubQueryExpression subQuery, Path alias); /** * Create a new INSERT INTO clause * * @param path table to insert to * @return insert clause */ I insert(RelationalPath path); /** * Create a new MERGE clause * * @param path table to merge into * @return merge clause */ M merge(RelationalPath path); /** * Create a new UPDATE clause * * @param path table to update * @return update clause */ U update(RelationalPath path); /* (non-Javadoc) * @see com.querydsl.core.QueryFactory#query() */ @Override Q query(); }