diff --git a/querydsl-sql/src/main/java/com/querydsl/sql/AbstractSQLQueryFactory.java b/querydsl-sql/src/main/java/com/querydsl/sql/AbstractSQLQueryFactory.java index c21786f27..2af48e2bc 100644 --- a/querydsl-sql/src/main/java/com/querydsl/sql/AbstractSQLQueryFactory.java +++ b/querydsl-sql/src/main/java/com/querydsl/sql/AbstractSQLQueryFactory.java @@ -17,6 +17,7 @@ import java.sql.Connection; import javax.inject.Provider; +import com.querydsl.core.Tuple; import com.querydsl.core.types.Expression; import com.querydsl.core.types.Path; import com.querydsl.core.types.SubQueryExpression; @@ -90,4 +91,61 @@ public abstract class AbstractSQLQueryFactory> imple return connection.get(); } + /** + * Create a new SQL query with the given projection + * + * @param expr projection + * @param type of the projection + * @return select(expr) + */ + public abstract AbstractSQLQuery select(Expression expr); + + /** + * Create a new SQL query with the given projection + * + * @param exprs projection + * @return select(exprs) + */ + public abstract AbstractSQLQuery select(Expression... exprs); + + /** + * Create a new SQL query with the given projection + * + * @param expr distinct projection + * @param type of the projection + * @return select(distinct expr) + */ + public abstract AbstractSQLQuery selectDistinct(Expression expr); + + /** + * Create a new SQL query with the given projection + * + * @param exprs distinct projection + * @return select(distinct exprs) + */ + public abstract AbstractSQLQuery selectDistinct(Expression... exprs); + + /** + * Create a new SQL query with zero as the projection + * + * @return select(0) + */ + public abstract AbstractSQLQuery selectZero(); + + /** + * Create a new SQL query with one as the projection + * + * @return select(1) + */ + public abstract AbstractSQLQuery selectOne(); + + /** + * Create a new SQL query with the given projection and source + * + * @param expr query source and projection + * @param type of the projection + * @return select(expr).from(expr) + */ + public abstract AbstractSQLQuery selectFrom(RelationalPath expr); + } diff --git a/querydsl-sql/src/main/java/com/querydsl/sql/SQLQueryFactory.java b/querydsl-sql/src/main/java/com/querydsl/sql/SQLQueryFactory.java index fb353326e..264035a02 100644 --- a/querydsl-sql/src/main/java/com/querydsl/sql/SQLQueryFactory.java +++ b/querydsl-sql/src/main/java/com/querydsl/sql/SQLQueryFactory.java @@ -74,73 +74,37 @@ public class SQLQueryFactory extends AbstractSQLQueryFactory> { return new SQLQuery(connection, configuration); } - /** - * Create a new SQLQuery instance with the given projection - * - * @param expr projection - * @param - * @return select(expr) - */ + @Override public SQLQuery select(Expression expr) { return query().select(expr); } - /** - * Create a new SQLQuery instance with the given projection - * - * @param exprs projection - * @return select(exprs) - */ + @Override public SQLQuery select(Expression... exprs) { return query().select(exprs); } - /** - * Create a new SQLQuery instance with the given projection - * - * @param expr distinct projection - * @param - * @return select(distinct expr) - */ + @Override public SQLQuery selectDistinct(Expression expr) { return query().select(expr).distinct(); } - /** - * Create a new SQLQuery instance with the given projection - * - * @param exprs distinct projection - * @return select(distinct exprs) - */ + @Override public SQLQuery selectDistinct(Expression... exprs) { return query().select(exprs).distinct(); } - /** - * Create a new SQLQuery instance with zero as the projection - * - * @return select(0) - */ + @Override public SQLQuery selectZero() { return select(Expressions.ZERO); } - /** - * Create a new SQLQuery instance with one as the projection - * - * @return select(1) - */ + @Override public SQLQuery selectOne() { return select(Expressions.ONE); } - /** - * Create a new SQLQuery instance with the given projection and source - * - * @param expr query source and projection - * @param - * @return select(expr).from(expr) - */ + @Override public SQLQuery selectFrom(RelationalPath expr) { return select(expr).from(expr); } diff --git a/querydsl-sql/src/main/java/com/querydsl/sql/mssql/SQLServerQueryFactory.java b/querydsl-sql/src/main/java/com/querydsl/sql/mssql/SQLServerQueryFactory.java index 566688abb..1356a3d0b 100644 --- a/querydsl-sql/src/main/java/com/querydsl/sql/mssql/SQLServerQueryFactory.java +++ b/querydsl-sql/src/main/java/com/querydsl/sql/mssql/SQLServerQueryFactory.java @@ -17,10 +17,10 @@ import java.sql.Connection; import javax.inject.Provider; -import com.querydsl.sql.AbstractSQLQueryFactory; -import com.querydsl.sql.Configuration; -import com.querydsl.sql.SQLServerTemplates; -import com.querydsl.sql.SQLTemplates; +import com.querydsl.core.Tuple; +import com.querydsl.core.types.Expression; +import com.querydsl.core.types.dsl.Expressions; +import com.querydsl.sql.*; /** * SQL Server specific implementation of SQLQueryFactory @@ -47,4 +47,39 @@ public class SQLServerQueryFactory extends AbstractSQLQueryFactory(connection, configuration); } + @Override + public SQLServerQuery select(Expression expr) { + return query().select(expr); + } + + @Override + public SQLServerQuery select(Expression... exprs) { + return query().select(exprs); + } + + @Override + public SQLServerQuery selectDistinct(Expression expr) { + return query().select(expr).distinct(); + } + + @Override + public SQLServerQuery selectDistinct(Expression... exprs) { + return query().select(exprs).distinct(); + } + + @Override + public SQLServerQuery selectZero() { + return select(Expressions.ZERO); + } + + @Override + public SQLServerQuery selectOne() { + return select(Expressions.ONE); + } + + @Override + public SQLServerQuery selectFrom(RelationalPath expr) { + return select(expr).from(expr); + } + } diff --git a/querydsl-sql/src/main/java/com/querydsl/sql/mysql/MySQLQueryFactory.java b/querydsl-sql/src/main/java/com/querydsl/sql/mysql/MySQLQueryFactory.java index 6b6317728..c36fec15a 100644 --- a/querydsl-sql/src/main/java/com/querydsl/sql/mysql/MySQLQueryFactory.java +++ b/querydsl-sql/src/main/java/com/querydsl/sql/mysql/MySQLQueryFactory.java @@ -18,8 +18,10 @@ import java.sql.Connection; import javax.inject.Provider; import com.querydsl.core.QueryFlag.Position; +import com.querydsl.core.Tuple; import com.querydsl.core.types.Expression; import com.querydsl.core.types.ExpressionUtils; +import com.querydsl.core.types.dsl.Expressions; import com.querydsl.sql.*; import com.querydsl.sql.dml.SQLInsertClause; @@ -90,4 +92,39 @@ public class MySQLQueryFactory extends AbstractSQLQueryFactory> { return new MySQLReplaceClause(connection.get(), configuration, entity); } + @Override + public MySQLQuery select(Expression expr) { + return query().select(expr); + } + + @Override + public MySQLQuery select(Expression... exprs) { + return query().select(exprs); + } + + @Override + public MySQLQuery selectDistinct(Expression expr) { + return query().select(expr).distinct(); + } + + @Override + public MySQLQuery selectDistinct(Expression... exprs) { + return query().select(exprs).distinct(); + } + + @Override + public MySQLQuery selectZero() { + return select(Expressions.ZERO); + } + + @Override + public MySQLQuery selectOne() { + return select(Expressions.ONE); + } + + @Override + public MySQLQuery selectFrom(RelationalPath expr) { + return select(expr).from(expr); + } + } diff --git a/querydsl-sql/src/main/java/com/querydsl/sql/oracle/OracleQueryFactory.java b/querydsl-sql/src/main/java/com/querydsl/sql/oracle/OracleQueryFactory.java index bdbcb66b0..07f48e1b7 100644 --- a/querydsl-sql/src/main/java/com/querydsl/sql/oracle/OracleQueryFactory.java +++ b/querydsl-sql/src/main/java/com/querydsl/sql/oracle/OracleQueryFactory.java @@ -17,10 +17,10 @@ import java.sql.Connection; import javax.inject.Provider; -import com.querydsl.sql.AbstractSQLQueryFactory; -import com.querydsl.sql.Configuration; -import com.querydsl.sql.OracleTemplates; -import com.querydsl.sql.SQLTemplates; +import com.querydsl.core.Tuple; +import com.querydsl.core.types.Expression; +import com.querydsl.core.types.dsl.Expressions; +import com.querydsl.sql.*; /** * Oracle specific implementation of SQLQueryFactory @@ -47,4 +47,39 @@ public class OracleQueryFactory extends AbstractSQLQueryFactory> return new OracleQuery(connection, configuration); } + @Override + public OracleQuery select(Expression expr) { + return query().select(expr); + } + + @Override + public OracleQuery select(Expression... exprs) { + return query().select(exprs); + } + + @Override + public OracleQuery selectDistinct(Expression expr) { + return query().select(expr).distinct(); + } + + @Override + public OracleQuery selectDistinct(Expression... exprs) { + return query().select(exprs).distinct(); + } + + @Override + public OracleQuery selectZero() { + return select(Expressions.ZERO); + } + + @Override + public OracleQuery selectOne() { + return select(Expressions.ONE); + } + + @Override + public OracleQuery selectFrom(RelationalPath expr) { + return select(expr).from(expr); + } + } diff --git a/querydsl-sql/src/main/java/com/querydsl/sql/postgresql/PostgreSQLQueryFactory.java b/querydsl-sql/src/main/java/com/querydsl/sql/postgresql/PostgreSQLQueryFactory.java index 2e89692f4..cffe1e331 100644 --- a/querydsl-sql/src/main/java/com/querydsl/sql/postgresql/PostgreSQLQueryFactory.java +++ b/querydsl-sql/src/main/java/com/querydsl/sql/postgresql/PostgreSQLQueryFactory.java @@ -17,10 +17,10 @@ import java.sql.Connection; import javax.inject.Provider; -import com.querydsl.sql.AbstractSQLQueryFactory; -import com.querydsl.sql.Configuration; -import com.querydsl.sql.PostgreSQLTemplates; -import com.querydsl.sql.SQLTemplates; +import com.querydsl.core.Tuple; +import com.querydsl.core.types.Expression; +import com.querydsl.core.types.dsl.Expressions; +import com.querydsl.sql.*; /** * PostgreSQL specific implementation of SQLQueryFactory @@ -47,5 +47,40 @@ public class PostgreSQLQueryFactory extends AbstractSQLQueryFactory(connection, configuration); } + @Override + public PostgreSQLQuery select(Expression expr) { + return query().select(expr); + } + + @Override + public PostgreSQLQuery select(Expression... exprs) { + return query().select(exprs); + } + + @Override + public PostgreSQLQuery selectDistinct(Expression expr) { + return query().select(expr).distinct(); + } + + @Override + public PostgreSQLQuery selectDistinct(Expression... exprs) { + return query().select(exprs).distinct(); + } + + @Override + public PostgreSQLQuery selectZero() { + return select(Expressions.ZERO); + } + + @Override + public PostgreSQLQuery selectOne() { + return select(Expressions.ONE); + } + + @Override + public PostgreSQLQuery selectFrom(RelationalPath expr) { + return select(expr).from(expr); + } + } diff --git a/querydsl-sql/src/main/java/com/querydsl/sql/teradata/TeradataQueryFactory.java b/querydsl-sql/src/main/java/com/querydsl/sql/teradata/TeradataQueryFactory.java index 21d50a94d..a7fcefcdd 100644 --- a/querydsl-sql/src/main/java/com/querydsl/sql/teradata/TeradataQueryFactory.java +++ b/querydsl-sql/src/main/java/com/querydsl/sql/teradata/TeradataQueryFactory.java @@ -17,10 +17,10 @@ import java.sql.Connection; import javax.inject.Provider; -import com.querydsl.sql.AbstractSQLQueryFactory; -import com.querydsl.sql.Configuration; -import com.querydsl.sql.SQLTemplates; -import com.querydsl.sql.TeradataTemplates; +import com.querydsl.core.Tuple; +import com.querydsl.core.types.Expression; +import com.querydsl.core.types.dsl.Expressions; +import com.querydsl.sql.*; /** * Teradata specific implementation of SQLQueryFactory @@ -47,5 +47,40 @@ public class TeradataQueryFactory extends AbstractSQLQueryFactory(connection, configuration); } + @Override + public TeradataQuery select(Expression expr) { + return query().select(expr); + } + + @Override + public TeradataQuery select(Expression... exprs) { + return query().select(exprs); + } + + @Override + public TeradataQuery selectDistinct(Expression expr) { + return query().select(expr).distinct(); + } + + @Override + public TeradataQuery selectDistinct(Expression... exprs) { + return query().select(exprs).distinct(); + } + + @Override + public TeradataQuery selectZero() { + return select(Expressions.ZERO); + } + + @Override + public TeradataQuery selectOne() { + return select(Expressions.ONE); + } + + @Override + public TeradataQuery selectFrom(RelationalPath expr) { + return select(expr).from(expr); + } + }