You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2014/03/14 15:32:07 UTC
svn commit: r1577548 - in /cayenne/main/trunk/cayenne-server/src:
main/java/org/apache/cayenne/access/jdbc/
main/java/org/apache/cayenne/access/trans/
main/java/org/apache/cayenne/dba/oracle/
test/java/org/apache/cayenne/access/jdbc/ test/java/org/apac...
Author: aadamchik
Date: Fri Mar 14 14:32:07 2014
New Revision: 1577548
URL: http://svn.apache.org/r1577548
Log:
CAY-1911 BatchQuery refactoring - make Iterable
preliminary refactoring - making BatchQuery an ivar of QueryBuilder
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchQueryBuilderFactory.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultBatchQueryBuilderFactory.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteQueryBuilderFactory.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilderTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilderTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilderTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilderTest.java
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java Fri Mar 14 14:32:07 2014
@@ -90,11 +90,11 @@ public class BatchAction extends BaseSQL
}
if (query instanceof InsertBatchQuery) {
- return factory.createInsertQueryBuilder(dataNode.getAdapter());
+ return factory.createInsertQueryBuilder((InsertBatchQuery) query, dataNode.getAdapter());
} else if (query instanceof UpdateBatchQuery) {
- return factory.createUpdateQueryBuilder(dataNode.getAdapter());
+ return factory.createUpdateQueryBuilder((UpdateBatchQuery) query, dataNode.getAdapter());
} else if (query instanceof DeleteBatchQuery) {
- return factory.createDeleteQueryBuilder(dataNode.getAdapter());
+ return factory.createDeleteQueryBuilder((DeleteBatchQuery) query, dataNode.getAdapter());
} else {
throw new CayenneException("Unsupported batch query: " + query);
}
@@ -103,7 +103,7 @@ public class BatchAction extends BaseSQL
protected void runAsBatch(Connection con, BatchQueryBuilder queryBuilder, OperationObserver delegate)
throws SQLException, Exception {
- String queryStr = queryBuilder.createSqlString(query);
+ String queryStr = queryBuilder.createSqlString();
JdbcEventLogger logger = dataNode.getJdbcEventLogger();
boolean isLoggable = logger.isLoggable();
@@ -119,10 +119,10 @@ public class BatchAction extends BaseSQL
if (isLoggable) {
logger.logQueryParameters("batch bind", query.getDbAttributes(),
- queryBuilder.getParameterValues(query), query instanceof InsertBatchQuery);
+ queryBuilder.getParameterValues(), query instanceof InsertBatchQuery);
}
- queryBuilder.bindParameters(statement, query);
+ queryBuilder.bindParameters(statement);
statement.addBatch();
}
@@ -164,7 +164,7 @@ public class BatchAction extends BaseSQL
boolean isLoggable = logger.isLoggable();
boolean useOptimisticLock = query.isUsingOptimisticLocking();
- String queryStr = queryBuilder.createSqlString(query);
+ String queryStr = queryBuilder.createSqlString();
// log batch SQL execution
logger.logQuery(queryStr, Collections.EMPTY_LIST);
@@ -177,11 +177,11 @@ public class BatchAction extends BaseSQL
try {
while (query.next()) {
if (isLoggable) {
- logger.logQueryParameters("bind", query.getDbAttributes(), queryBuilder.getParameterValues(query),
+ logger.logQueryParameters("bind", query.getDbAttributes(), queryBuilder.getParameterValues(),
query instanceof InsertBatchQuery);
}
- queryBuilder.bindParameters(statement, query);
+ queryBuilder.bindParameters(statement);
int updated = statement.executeUpdate();
if (useOptimisticLock && updated != 1) {
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchQueryBuilderFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchQueryBuilderFactory.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchQueryBuilderFactory.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchQueryBuilderFactory.java Fri Mar 14 14:32:07 2014
@@ -20,10 +20,13 @@ package org.apache.cayenne.access.jdbc;
import org.apache.cayenne.access.trans.BatchQueryBuilder;
import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.query.DeleteBatchQuery;
+import org.apache.cayenne.query.InsertBatchQuery;
+import org.apache.cayenne.query.UpdateBatchQuery;
/**
- * Factory which creates BatchQueryBuilders for different types of queries, which, in
- * their turn, create SQL strings for batch queries.
+ * Factory which creates BatchQueryBuilders for different types of queries,
+ * which, in their turn, create SQL strings for batch queries.
*
* @since 3.0
*/
@@ -31,16 +34,22 @@ public interface BatchQueryBuilderFactor
/**
* Creates query builder for INSERT queries
+ *
+ * @since 3.2
*/
- BatchQueryBuilder createInsertQueryBuilder(DbAdapter adapter);
+ BatchQueryBuilder createInsertQueryBuilder(InsertBatchQuery query, DbAdapter adapter);
/**
* Creates query builder for UPDATE queries
+ *
+ * @since 3.2
*/
- BatchQueryBuilder createUpdateQueryBuilder(DbAdapter adapter);
+ BatchQueryBuilder createUpdateQueryBuilder(UpdateBatchQuery query, DbAdapter adapter);
/**
* Creates query builder for DELETE queries
+ *
+ * @since 3.2
*/
- BatchQueryBuilder createDeleteQueryBuilder(DbAdapter adapter);
+ BatchQueryBuilder createDeleteQueryBuilder(DeleteBatchQuery query, DbAdapter adapter);
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultBatchQueryBuilderFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultBatchQueryBuilderFactory.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultBatchQueryBuilderFactory.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultBatchQueryBuilderFactory.java Fri Mar 14 14:32:07 2014
@@ -23,6 +23,9 @@ import org.apache.cayenne.access.trans.D
import org.apache.cayenne.access.trans.InsertBatchQueryBuilder;
import org.apache.cayenne.access.trans.UpdateBatchQueryBuilder;
import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.query.DeleteBatchQuery;
+import org.apache.cayenne.query.InsertBatchQuery;
+import org.apache.cayenne.query.UpdateBatchQuery;
/**
* Default implementation of {@link BatchQueryBuilderFactory}.
@@ -30,18 +33,18 @@ import org.apache.cayenne.dba.DbAdapter;
public class DefaultBatchQueryBuilderFactory implements BatchQueryBuilderFactory {
@Override
- public BatchQueryBuilder createDeleteQueryBuilder(DbAdapter adapter) {
- return new DeleteBatchQueryBuilder(adapter);
+ public BatchQueryBuilder createDeleteQueryBuilder(DeleteBatchQuery query, DbAdapter adapter) {
+ return new DeleteBatchQueryBuilder(query, adapter);
}
@Override
- public BatchQueryBuilder createInsertQueryBuilder(DbAdapter adapter) {
- return new InsertBatchQueryBuilder(adapter);
+ public BatchQueryBuilder createInsertQueryBuilder(InsertBatchQuery query, DbAdapter adapter) {
+ return new InsertBatchQueryBuilder(query, adapter);
}
@Override
- public BatchQueryBuilder createUpdateQueryBuilder(DbAdapter adapter) {
- return new UpdateBatchQueryBuilder(adapter);
+ public BatchQueryBuilder createUpdateQueryBuilder(UpdateBatchQuery query, DbAdapter adapter) {
+ return new UpdateBatchQueryBuilder(query, adapter);
}
-
+
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -27,7 +27,7 @@ import org.apache.cayenne.access.trans.D
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.query.BatchQuery;
+import org.apache.cayenne.query.DeleteBatchQuery;
/**
* Implementation of {@link DeleteBatchQueryBuilder}, which uses 'soft' delete
@@ -37,47 +37,47 @@ public class SoftDeleteBatchQueryBuilder
private String deletedFieldName;
- public SoftDeleteBatchQueryBuilder(DbAdapter adapter, String deletedFieldName) {
- super(adapter);
+ public SoftDeleteBatchQueryBuilder(DeleteBatchQuery query, DbAdapter adapter, String deletedFieldName) {
+ super(query, adapter);
this.deletedFieldName = deletedFieldName;
}
@Override
- public String createSqlString(BatchQuery batch) throws IOException {
- if (!needSoftDelete(batch)) {
- return super.createSqlString(batch);
+ public String createSqlString() throws IOException {
+ if (!needSoftDelete()) {
+ return super.createSqlString();
}
QuotingStrategy strategy = getAdapter().getQuotingStrategy();
- StringBuffer query = new StringBuffer("UPDATE ");
- query.append(strategy.quotedFullyQualifiedName(batch.getDbEntity()));
- query.append(" SET ").append(strategy.quotedIdentifier(batch.getDbEntity(), deletedFieldName)).append(" = ?");
+ StringBuffer buffer = new StringBuffer("UPDATE ");
+ buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity()));
+ buffer.append(" SET ").append(strategy.quotedIdentifier(query.getDbEntity(), deletedFieldName)).append(" = ?");
- applyQualifier(query, batch);
+ applyQualifier(buffer);
- return query.toString();
+ return buffer.toString();
}
@Override
- protected int getFirstParameterIndex(BatchQuery query) {
- return needSoftDelete(query) ? 2 : 1;
+ protected int getFirstParameterIndex() {
+ return needSoftDelete() ? 2 : 1;
}
@Override
- public void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception {
- if (needSoftDelete(query)) {
+ public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
+ if (needSoftDelete()) {
// binding first parameter (which is 'deleted') as true
adapter.bindParameter(statement, true, 1, Types.BOOLEAN, -1);
}
- super.bindParameters(statement, query);
+ super.bindParameters(statement);
}
/**
* @return whether 'soft' deletion should be used
*/
- protected boolean needSoftDelete(BatchQuery query) {
+ protected boolean needSoftDelete() {
DbAttribute attr = query.getDbEntity().getAttribute(deletedFieldName);
return attr != null && attr.getType() == Types.BOOLEAN;
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteQueryBuilderFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteQueryBuilderFactory.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteQueryBuilderFactory.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteQueryBuilderFactory.java Fri Mar 14 14:32:07 2014
@@ -20,6 +20,7 @@ package org.apache.cayenne.access.jdbc;
import org.apache.cayenne.access.trans.BatchQueryBuilder;
import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.query.DeleteBatchQuery;
/**
* Implementation of {@link #BatchQueryBuilderFactory}, which uses 'soft' delete
@@ -45,8 +46,8 @@ public class SoftDeleteQueryBuilderFacto
}
@Override
- public BatchQueryBuilder createDeleteQueryBuilder(DbAdapter adapter) {
- return new SoftDeleteBatchQueryBuilder(adapter, deletedFieldName);
+ public BatchQueryBuilder createDeleteQueryBuilder(DeleteBatchQuery query, DbAdapter adapter) {
+ return new SoftDeleteBatchQueryBuilder(query, adapter, deletedFieldName);
}
/**
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -36,10 +36,12 @@ import org.apache.cayenne.query.BatchQue
*/
public abstract class BatchQueryBuilder {
+ protected BatchQuery query;
protected DbAdapter adapter;
protected String trimFunction;
- public BatchQueryBuilder(DbAdapter adapter) {
+ public BatchQueryBuilder(BatchQuery query, DbAdapter adapter) {
+ this.query = query;
this.adapter = adapter;
}
@@ -47,9 +49,10 @@ public abstract class BatchQueryBuilder
* Translates BatchQuery into an SQL string formatted to use in a
* PreparedStatement.
*
+ * @since 3.2
* @throws IOException
*/
- public abstract String createSqlString(BatchQuery batch) throws IOException;
+ public abstract String createSqlString() throws IOException;
/**
* Appends the name of the column to the query buffer. Subclasses use this
@@ -93,9 +96,9 @@ public abstract class BatchQueryBuilder
* Binds parameters for the current batch iteration to the
* PreparedStatement.
*
- * @since 1.2
+ * @since 3.2
*/
- public abstract void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception;
+ public abstract void bindParameters(PreparedStatement statement) throws SQLException, Exception;
/**
* Returns a list of values for the current batch iteration. Used primarily
@@ -103,7 +106,7 @@ public abstract class BatchQueryBuilder
*
* @since 1.2
*/
- public List<Object> getParameterValues(BatchQuery query) {
+ public List<Object> getParameterValues() {
int len = query.getDbAttributes().size();
List<Object> values = new ArrayList<Object>(len);
for (int i = 0; i < len; i++) {
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -27,7 +27,6 @@ import java.util.Iterator;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.query.BatchQuery;
import org.apache.cayenne.query.DeleteBatchQuery;
/**
@@ -36,38 +35,38 @@ import org.apache.cayenne.query.DeleteBa
*/
public class DeleteBatchQueryBuilder extends BatchQueryBuilder {
- public DeleteBatchQueryBuilder(DbAdapter adapter) {
- super(adapter);
+ public DeleteBatchQueryBuilder(DeleteBatchQuery query, DbAdapter adapter) {
+ super(query, adapter);
}
@Override
- public String createSqlString(BatchQuery batch) throws IOException {
+ public String createSqlString() throws IOException {
QuotingStrategy strategy = getAdapter().getQuotingStrategy();
- StringBuffer query = new StringBuffer("DELETE FROM ");
- query.append(strategy.quotedFullyQualifiedName(batch.getDbEntity()));
+ StringBuffer buffer = new StringBuffer("DELETE FROM ");
+ buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity()));
- applyQualifier(query, batch);
+ applyQualifier(buffer);
- return query.toString();
+ return buffer.toString();
}
/**
* Appends WHERE clause to SQL string
*/
- protected void applyQualifier(StringBuffer query, BatchQuery batch) {
- query.append(" WHERE ");
+ protected void applyQualifier(StringBuffer buffer) {
+ buffer.append(" WHERE ");
- DeleteBatchQuery deleteBatch = (DeleteBatchQuery) batch;
+ DeleteBatchQuery deleteBatch = (DeleteBatchQuery) query;
Iterator<DbAttribute> i = deleteBatch.getQualifierAttributes().iterator();
while (i.hasNext()) {
DbAttribute attribute = i.next();
- appendDbAttribute(query, attribute);
- query.append(deleteBatch.isNull(attribute) ? " IS NULL" : " = ?");
+ appendDbAttribute(buffer, attribute);
+ buffer.append(deleteBatch.isNull(attribute) ? " IS NULL" : " = ?");
if (i.hasNext()) {
- query.append(" AND ");
+ buffer.append(" AND ");
}
}
}
@@ -76,11 +75,11 @@ public class DeleteBatchQueryBuilder ext
* Binds BatchQuery parameters to the PreparedStatement.
*/
@Override
- public void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception {
+ public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
DeleteBatchQuery deleteBatch = (DeleteBatchQuery) query;
- int parameterIndex = getFirstParameterIndex(query);
+ int parameterIndex = getFirstParameterIndex();
int i = 0;
for (DbAttribute attribute : deleteBatch.getQualifierAttributes()) {
@@ -98,7 +97,7 @@ public class DeleteBatchQueryBuilder ext
/**
* @return index of first parameter in delete clause
*/
- protected int getFirstParameterIndex(BatchQuery query) {
+ protected int getFirstParameterIndex() {
return 1;
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -28,26 +28,26 @@ import java.util.List;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.query.BatchQuery;
+import org.apache.cayenne.query.InsertBatchQuery;
/**
* Translator of InsertBatchQueries.
*/
public class InsertBatchQueryBuilder extends BatchQueryBuilder {
- public InsertBatchQueryBuilder(DbAdapter adapter) {
- super(adapter);
+ public InsertBatchQueryBuilder(InsertBatchQuery query, DbAdapter adapter) {
+ super(query, adapter);
}
/**
- * Binds parameters for the current batch iteration to the PreparedStatement. Performs
- * filtering of attributes based on column generation rules.
+ * Binds parameters for the current batch iteration to the
+ * PreparedStatement. Performs filtering of attributes based on column
+ * generation rules.
*
* @since 1.2
*/
@Override
- public void bindParameters(PreparedStatement statement, BatchQuery query)
- throws SQLException, Exception {
+ public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
List<DbAttribute> dbAttributes = query.getDbAttributes();
int attributeCount = dbAttributes.size();
@@ -58,20 +58,20 @@ public class InsertBatchQueryBuilder ext
if (includeInBatch(attribute)) {
j++;
Object value = query.getValue(i);
- adapter.bindParameter(statement, value, j, attribute.getType(), attribute
- .getScale());
+ adapter.bindParameter(statement, value, j, attribute.getType(), attribute.getScale());
}
}
}
/**
- * Returns a list of values for the current batch iteration. Performs filtering of
- * attributes based on column generation rules. Used primarily for logging.
+ * Returns a list of values for the current batch iteration. Performs
+ * filtering of attributes based on column generation rules. Used primarily
+ * for logging.
*
* @since 1.2
*/
@Override
- public List<Object> getParameterValues(BatchQuery query) {
+ public List<Object> getParameterValues() {
List<DbAttribute> attributes = query.getDbAttributes();
int len = attributes.size();
List<Object> values = new ArrayList<Object>(len);
@@ -85,44 +85,45 @@ public class InsertBatchQueryBuilder ext
}
@Override
- public String createSqlString(BatchQuery batch) throws IOException {
+ public String createSqlString() throws IOException {
- List<DbAttribute> dbAttributes = batch.getDbAttributes();
- QuotingStrategy strategy = getAdapter().getQuotingStrategy();
+ List<DbAttribute> dbAttributes = query.getDbAttributes();
+ QuotingStrategy strategy = getAdapter().getQuotingStrategy();
- StringBuilder query = new StringBuilder("INSERT INTO ");
- query.append(strategy.quotedFullyQualifiedName(batch.getDbEntity()));
- query.append(" (");
+ StringBuilder buffer = new StringBuilder("INSERT INTO ");
+ buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity()));
+ buffer.append(" (");
int columnCount = 0;
for (DbAttribute attribute : dbAttributes) {
// attribute inclusion rule - one of the rules below must be true:
// (1) attribute not generated
- // (2) attribute is generated and PK and adapter does not support generated
+ // (2) attribute is generated and PK and adapter does not support
+ // generated
// keys
if (includeInBatch(attribute)) {
if (columnCount > 0) {
- query.append(", ");
+ buffer.append(", ");
}
- query.append(strategy.quotedName(attribute));
+ buffer.append(strategy.quotedName(attribute));
columnCount++;
}
}
- query.append(") VALUES (");
+ buffer.append(") VALUES (");
for (int i = 0; i < columnCount; i++) {
if (i > 0) {
- query.append(", ");
+ buffer.append(", ");
}
- query.append('?');
+ buffer.append('?');
}
- query.append(')');
- return query.toString();
+ buffer.append(')');
+ return buffer.toString();
}
/**
@@ -133,10 +134,10 @@ public class InsertBatchQueryBuilder ext
protected boolean includeInBatch(DbAttribute attribute) {
// attribute inclusion rule - one of the rules below must be true:
// (1) attribute not generated
- // (2) attribute is generated and PK and adapter does not support generated
+ // (2) attribute is generated and PK and adapter does not support
+ // generated
// keys
- return !attribute.isGenerated()
- || (attribute.isPrimaryKey() && !adapter.supportsGeneratedKeys());
+ return !attribute.isGenerated() || (attribute.isPrimaryKey() && !adapter.supportsGeneratedKeys());
}
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -17,7 +17,6 @@
* under the License.
****************************************************************/
-
package org.apache.cayenne.access.trans;
import java.sql.PreparedStatement;
@@ -42,21 +41,18 @@ public abstract class LOBBatchQueryBuild
protected String newClobFunction;
protected String newBlobFunction;
- public LOBBatchQueryBuilder(DbAdapter adapter) {
- super(adapter);
+ public LOBBatchQueryBuilder(BatchQuery query, DbAdapter adapter) {
+ super(query, adapter);
}
- public abstract List getValuesForLOBUpdateParameters(BatchQuery query);
+ public abstract List getValuesForLOBUpdateParameters();
- public String createLOBSelectString(
- BatchQuery updateQuery,
- List selectedLOBAttributes,
- List qualifierAttributes) {
+ public String createLOBSelectString(List selectedLOBAttributes, List qualifierAttributes) {
QuotingStrategy strategy = getAdapter().getQuotingStrategy();
- StringBuffer buf = new StringBuffer();
- buf.append("SELECT ");
+ StringBuffer buf = new StringBuffer();
+ buf.append("SELECT ");
Iterator it = selectedLOBAttributes.iterator();
while (it.hasNext()) {
@@ -67,10 +63,7 @@ public abstract class LOBBatchQueryBuild
}
}
- buf
- .append(" FROM ")
- .append(strategy.quotedFullyQualifiedName(updateQuery.getDbEntity()))
- .append(" WHERE ");
+ buf.append(" FROM ").append(strategy.quotedFullyQualifiedName(query.getDbEntity())).append(" WHERE ");
it = qualifierAttributes.iterator();
while (it.hasNext()) {
@@ -87,33 +80,23 @@ public abstract class LOBBatchQueryBuild
}
/**
- * Appends parameter placeholder for the value of the column being updated. If
- * requested, performs special handling on LOB columns.
+ * Appends parameter placeholder for the value of the column being updated.
+ * If requested, performs special handling on LOB columns.
*/
- protected void appendUpdatedParameter(
- StringBuffer buf,
- DbAttribute dbAttribute,
- Object value) {
+ protected void appendUpdatedParameter(StringBuffer buf, DbAttribute dbAttribute, Object value) {
int type = dbAttribute.getType();
if (isUpdateableColumn(value, type)) {
buf.append('?');
- }
- else {
+ } else {
if (type == Types.CLOB) {
buf.append(newClobFunction);
- }
- else if (type == Types.BLOB) {
+ } else if (type == Types.BLOB) {
buf.append(newBlobFunction);
- }
- else {
- throw new CayenneRuntimeException("Unknown LOB column type: "
- + type
- + "("
- + TypesMapping.getSqlNameByType(type)
- + "). Query buffer: "
- + buf);
+ } else {
+ throw new CayenneRuntimeException("Unknown LOB column type: " + type + "("
+ + TypesMapping.getSqlNameByType(type) + "). Query buffer: " + buf);
}
}
}
@@ -122,8 +105,7 @@ public abstract class LOBBatchQueryBuild
* Binds BatchQuery parameters to the PreparedStatement.
*/
@Override
- public void bindParameters(PreparedStatement statement, BatchQuery query)
- throws SQLException, Exception {
+ public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
List<DbAttribute> dbAttributes = query.getDbAttributes();
int attributeCount = dbAttributes.size();
@@ -135,11 +117,10 @@ public abstract class LOBBatchQueryBuild
DbAttribute attribute = dbAttributes.get(i);
int type = attribute.getType();
- // TODO: (Andrus) This works as long as there is no LOBs in qualifier
+ // TODO: (Andrus) This works as long as there is no LOBs in
+ // qualifier
if (isUpdateableColumn(value, type)) {
- adapter
- .bindParameter(statement, value, j, type, attribute
- .getScale());
+ adapter.bindParameter(statement, value, j, type, attribute.getScale());
j++;
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -26,16 +26,16 @@ import java.util.List;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.query.BatchQuery;
+import org.apache.cayenne.query.InsertBatchQuery;
public class LOBInsertBatchQueryBuilder extends LOBBatchQueryBuilder {
- public LOBInsertBatchQueryBuilder(DbAdapter adapter) {
- super(adapter);
+ public LOBInsertBatchQueryBuilder(InsertBatchQuery query, DbAdapter adapter) {
+ super(query, adapter);
}
@Override
- public List getValuesForLOBUpdateParameters(BatchQuery query) {
+ public List getValuesForLOBUpdateParameters() {
List<DbAttribute> dbAttributes = query.getDbAttributes();
int len = dbAttributes.size();
@@ -52,31 +52,31 @@ public class LOBInsertBatchQueryBuilder
}
@Override
- public String createSqlString(BatchQuery batch) {
- List<DbAttribute> dbAttributes = batch.getDbAttributes();
+ public String createSqlString() {
+ List<DbAttribute> dbAttributes = query.getDbAttributes();
QuotingStrategy strategy = getAdapter().getQuotingStrategy();
- StringBuffer query = new StringBuffer("INSERT INTO ");
- query.append(strategy.quotedFullyQualifiedName(batch.getDbEntity()));
- query.append(" (");
+ StringBuffer buffer = new StringBuffer("INSERT INTO ");
+ buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity()));
+ buffer.append(" (");
for (Iterator<DbAttribute> i = dbAttributes.iterator(); i.hasNext();) {
DbAttribute attribute = i.next();
- query.append(strategy.quotedName(attribute));
+ buffer.append(strategy.quotedName(attribute));
if (i.hasNext()) {
- query.append(", ");
+ buffer.append(", ");
}
}
- query.append(") VALUES (");
+ buffer.append(") VALUES (");
for (int i = 0; i < dbAttributes.size(); i++) {
if (i > 0) {
- query.append(", ");
+ buffer.append(", ");
}
- appendUpdatedParameter(query, dbAttributes.get(i), batch.getValue(i));
+ appendUpdatedParameter(buffer, dbAttributes.get(i), query.getValue(i));
}
- query.append(')');
- return query.toString();
+ buffer.append(')');
+ return buffer.toString();
}
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -31,12 +31,12 @@ import org.apache.cayenne.query.UpdateBa
public class LOBUpdateBatchQueryBuilder extends LOBBatchQueryBuilder {
- public LOBUpdateBatchQueryBuilder(DbAdapter adapter) {
- super(adapter);
+ public LOBUpdateBatchQueryBuilder(UpdateBatchQuery query, DbAdapter adapter) {
+ super(query, adapter);
}
@Override
- public List getValuesForLOBUpdateParameters(BatchQuery query) {
+ public List getValuesForLOBUpdateParameters() {
int len = query.getDbAttributes().size();
UpdateBatchQuery updateBatch = (UpdateBatchQuery) query;
@@ -62,39 +62,39 @@ public class LOBUpdateBatchQueryBuilder
}
@Override
- public String createSqlString(BatchQuery batch) {
- UpdateBatchQuery updateBatch = (UpdateBatchQuery) batch;
+ public String createSqlString() {
+ UpdateBatchQuery updateBatch = (UpdateBatchQuery) query;
List<DbAttribute> idDbAttributes = updateBatch.getQualifierAttributes();
List<DbAttribute> updatedDbAttributes = updateBatch.getUpdatedAttributes();
QuotingStrategy strategy = getAdapter().getQuotingStrategy();
- StringBuffer query = new StringBuffer("UPDATE ");
- query.append(strategy.quotedFullyQualifiedName(batch.getDbEntity()));
- query.append(" SET ");
+ StringBuffer buffer = new StringBuffer("UPDATE ");
+ buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity()));
+ buffer.append(" SET ");
int len = updatedDbAttributes.size();
for (int i = 0; i < len; i++) {
if (i > 0) {
- query.append(", ");
+ buffer.append(", ");
}
DbAttribute attribute = updatedDbAttributes.get(i);
- query.append(strategy.quotedName(attribute));
- query.append(" = ");
- appendUpdatedParameter(query, attribute, batch.getValue(i));
+ buffer.append(strategy.quotedName(attribute));
+ buffer.append(" = ");
+ appendUpdatedParameter(buffer, attribute, query.getValue(i));
}
- query.append(" WHERE ");
+ buffer.append(" WHERE ");
Iterator<DbAttribute> i = idDbAttributes.iterator();
while (i.hasNext()) {
DbAttribute attribute = i.next();
- appendDbAttribute(query, attribute);
- query.append(" = ?");
+ appendDbAttribute(buffer, attribute);
+ buffer.append(" = ?");
if (i.hasNext()) {
- query.append(" AND ");
+ buffer.append(" AND ");
}
}
- return query.toString();
+ return buffer.toString();
}
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -28,7 +28,6 @@ import java.util.List;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.QuotingStrategy;
import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.query.BatchQuery;
import org.apache.cayenne.query.UpdateBatchQuery;
/**
@@ -37,55 +36,55 @@ import org.apache.cayenne.query.UpdateBa
public class UpdateBatchQueryBuilder extends BatchQueryBuilder {
- public UpdateBatchQueryBuilder(DbAdapter adapter) {
- super(adapter);
+ public UpdateBatchQueryBuilder(UpdateBatchQuery query, DbAdapter adapter) {
+ super(query, adapter);
}
@Override
- public String createSqlString(BatchQuery batch) throws IOException {
- UpdateBatchQuery updateBatch = (UpdateBatchQuery) batch;
+ public String createSqlString() throws IOException {
+ UpdateBatchQuery updateBatch = (UpdateBatchQuery) query;
QuotingStrategy strategy = getAdapter().getQuotingStrategy();
List<DbAttribute> qualifierAttributes = updateBatch.getQualifierAttributes();
List<DbAttribute> updatedDbAttributes = updateBatch.getUpdatedAttributes();
- StringBuffer query = new StringBuffer("UPDATE ");
- query.append(strategy.quotedFullyQualifiedName(batch.getDbEntity()));
- query.append(" SET ");
+ StringBuffer buffer = new StringBuffer("UPDATE ");
+ buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity()));
+ buffer.append(" SET ");
int len = updatedDbAttributes.size();
for (int i = 0; i < len; i++) {
if (i > 0) {
- query.append(", ");
+ buffer.append(", ");
}
DbAttribute attribute = updatedDbAttributes.get(i);
- query.append(strategy.quotedName(attribute));
- query.append(" = ?");
+ buffer.append(strategy.quotedName(attribute));
+ buffer.append(" = ?");
}
- query.append(" WHERE ");
+ buffer.append(" WHERE ");
Iterator<DbAttribute> i = qualifierAttributes.iterator();
while (i.hasNext()) {
DbAttribute attribute = i.next();
- appendDbAttribute(query, attribute);
- query.append(updateBatch.isNull(attribute) ? " IS NULL" : " = ?");
+ appendDbAttribute(buffer, attribute);
+ buffer.append(updateBatch.isNull(attribute) ? " IS NULL" : " = ?");
if (i.hasNext()) {
- query.append(" AND ");
+ buffer.append(" AND ");
}
}
- return query.toString();
+ return buffer.toString();
}
/**
* Binds BatchQuery parameters to the PreparedStatement.
*/
@Override
- public void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception {
+ public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
UpdateBatchQuery updateBatch = (UpdateBatchQuery) query;
List<DbAttribute> qualifierAttributes = updateBatch.getQualifierAttributes();
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java Fri Mar 14 14:32:07 2014
@@ -72,10 +72,10 @@ class OracleLOBBatchAction implements SQ
LOBBatchQueryBuilder queryBuilder;
if (query instanceof InsertBatchQuery) {
- queryBuilder = new LOBInsertBatchQueryBuilder(getAdapter());
+ queryBuilder = new LOBInsertBatchQueryBuilder((InsertBatchQuery) query, getAdapter());
}
else if (query instanceof UpdateBatchQuery) {
- queryBuilder = new LOBUpdateBatchQueryBuilder(getAdapter());
+ queryBuilder = new LOBUpdateBatchQueryBuilder((UpdateBatchQuery) query, getAdapter());
}
else {
throw new CayenneException(
@@ -99,7 +99,7 @@ class OracleLOBBatchAction implements SQ
query.reset();
while (selectQuery.next()) {
int updated = 0;
- String updateStr = queryBuilder.createSqlString(query);
+ String updateStr = queryBuilder.createSqlString();
// 1. run row update
logger.logQuery(updateStr, Collections.EMPTY_LIST);
@@ -107,7 +107,7 @@ class OracleLOBBatchAction implements SQ
try {
if (isLoggable) {
- List bindings = queryBuilder.getValuesForLOBUpdateParameters(query);
+ List bindings = queryBuilder.getValuesForLOBUpdateParameters();
logger.logQueryParameters(
"bind",
null,
@@ -115,7 +115,7 @@ class OracleLOBBatchAction implements SQ
query instanceof InsertBatchQuery);
}
- queryBuilder.bindParameters(statement, query);
+ queryBuilder.bindParameters(statement);
updated = statement.executeUpdate();
logger.logUpdateCount(updated);
}
@@ -155,7 +155,6 @@ class OracleLOBBatchAction implements SQ
int lobSize = lobAttributes.size();
String selectStr = queryBuilder.createLOBSelectString(
- selectQuery.getQuery(),
lobAttributes,
qualifierAttributes);
Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingTest.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingTest.java Fri Mar 14 14:32:07 2014
@@ -81,7 +81,7 @@ public class BatchActionLockingTest exte
batchQuery.setUsingOptimisticLocking(true);
batchQuery.add(qualifierSnapshot);
- DeleteBatchQueryBuilder batchQueryBuilder = new DeleteBatchQueryBuilder(adapter);
+ DeleteBatchQueryBuilder batchQueryBuilder = new DeleteBatchQueryBuilder(batchQuery, adapter);
MockConnection mockConnection = new MockConnection();
PreparedStatementResultSetHandler preparedStatementResultSetHandler = mockConnection
@@ -122,7 +122,7 @@ public class BatchActionLockingTest exte
batchQuery.setUsingOptimisticLocking(true);
batchQuery.add(qualifierSnapshot);
- DeleteBatchQueryBuilder batchQueryBuilder = new DeleteBatchQueryBuilder(adapter);
+ DeleteBatchQueryBuilder batchQueryBuilder = new DeleteBatchQueryBuilder(batchQuery, adapter);
MockConnection mockConnection = new MockConnection();
PreparedStatementResultSetHandler preparedStatementResultSetHandler = mockConnection
Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilderTest.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilderTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilderTest.java Fri Mar 14 14:32:07 2014
@@ -61,13 +61,13 @@ public class SoftDeleteBatchQueryBuilder
@Inject
private AdhocObjectFactory objectFactory;
- private DeleteBatchQueryBuilder createBuilder() {
+ private DeleteBatchQueryBuilder createBuilder(DeleteBatchQuery query) {
JdbcAdapter adapter = objectFactory.newInstance(JdbcAdapter.class, JdbcAdapter.class.getName());
- return createBuilder(adapter);
+ return createBuilder(query, adapter);
}
- private DeleteBatchQueryBuilder createBuilder(JdbcAdapter adapter) {
- return (DeleteBatchQueryBuilder) new SoftDeleteQueryBuilderFactory().createDeleteQueryBuilder(adapter);
+ private DeleteBatchQueryBuilder createBuilder(DeleteBatchQuery query, JdbcAdapter adapter) {
+ return (DeleteBatchQueryBuilder) new SoftDeleteQueryBuilderFactory().createDeleteQueryBuilder(query, adapter);
}
public void testCreateSqlString() throws Exception {
@@ -76,8 +76,8 @@ public class SoftDeleteBatchQueryBuilder
List<DbAttribute> idAttributes = Collections.singletonList(entity.getAttribute("SOFT_TEST_ID"));
DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, null, 1);
- DeleteBatchQueryBuilder builder = createBuilder();
- String generatedSql = builder.createSqlString(deleteQuery);
+ DeleteBatchQueryBuilder builder = createBuilder(deleteQuery);
+ String generatedSql = builder.createSqlString();
assertNotNull(generatedSql);
assertEquals("UPDATE " + entity.getName() + " SET DELETED = ? WHERE SOFT_TEST_ID = ?", generatedSql);
}
@@ -91,8 +91,8 @@ public class SoftDeleteBatchQueryBuilder
Collection<String> nullAttributes = Collections.singleton("NAME");
DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, nullAttributes, 1);
- DeleteBatchQueryBuilder builder = createBuilder();
- String generatedSql = builder.createSqlString(deleteQuery);
+ DeleteBatchQueryBuilder builder = createBuilder(deleteQuery);
+ String generatedSql = builder.createSqlString();
assertNotNull(generatedSql);
assertEquals("UPDATE " + entity.getName() + " SET DELETED = ? WHERE SOFT_TEST_ID = ? AND NAME IS NULL",
generatedSql);
@@ -108,8 +108,8 @@ public class SoftDeleteBatchQueryBuilder
DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, null, 1);
JdbcAdapter adapter = (JdbcAdapter) this.adapter;
- DeleteBatchQueryBuilder builder = createBuilder(adapter);
- String generatedSql = builder.createSqlString(deleteQuery);
+ DeleteBatchQueryBuilder builder = createBuilder(deleteQuery, adapter);
+ String generatedSql = builder.createSqlString();
String charStart = unitAdapter.getIdentifiersStartQuote();
String charEnd = unitAdapter.getIdentifiersEndQuote();
Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java Fri Mar 14 14:32:07 2014
@@ -20,6 +20,8 @@
package org.apache.cayenne.access.trans;
+import static org.mockito.Mockito.mock;
+
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Types;
@@ -40,87 +42,80 @@ public class BatchQueryBuilderTest exten
@Inject
private AdhocObjectFactory objectFactory;
- public void testConstructor() throws Exception {
- DbAdapter adapter = objectFactory.newInstance(
- DbAdapter.class,
- JdbcAdapter.class.getName());
- BatchQueryBuilder builder =
- new BatchQueryBuilder(adapter) {
- @Override
- public String createSqlString(BatchQuery batch) {
- return null;
- }
- @Override
- public void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception {
- }
- };
-
- assertSame(adapter, builder.getAdapter());
- }
-
- public void testAppendDbAttribute1() throws Exception {
- DbAdapter adapter = objectFactory.newInstance(
- DbAdapter.class,
- JdbcAdapter.class.getName());
- String trimFunction = "testTrim";
-
- BatchQueryBuilder builder =
- new BatchQueryBuilder(adapter) {
- @Override
- public String createSqlString(BatchQuery batch) {
- return null;
- }
-
- @Override
- public void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception {
- }
- };
-
- builder.setTrimFunction(trimFunction);
-
- StringBuffer buf = new StringBuffer();
- DbEntity entity = new DbEntity("Test");
- DbAttribute attr = new DbAttribute("testAttr", Types.CHAR, null);
- attr.setEntity(entity);
- builder.appendDbAttribute(buf, attr);
- assertEquals("testTrim(testAttr)", buf.toString());
-
- buf = new StringBuffer();
- attr = new DbAttribute("testAttr", Types.VARCHAR, null);
- attr.setEntity(entity);
- builder.appendDbAttribute(buf, attr);
- assertEquals("testAttr", buf.toString());
- }
-
- public void testAppendDbAttribute2() throws Exception {
- DbAdapter adapter = objectFactory.newInstance(
- DbAdapter.class,
- JdbcAdapter.class.getName());
-
- BatchQueryBuilder builder = new BatchQueryBuilder(adapter) {
- @Override
- public String createSqlString(BatchQuery batch) {
- return null;
- }
-
- @Override
- public void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception {
- }
- };
-
- StringBuffer buf = new StringBuffer();
- DbEntity entity = new DbEntity("Test");
-
- DbAttribute attr = new DbAttribute("testAttr", Types.CHAR, null);
- attr.setEntity(entity);
- builder.appendDbAttribute(buf, attr);
- assertEquals("testAttr", buf.toString());
-
- buf = new StringBuffer();
- attr = new DbAttribute("testAttr", Types.VARCHAR, null);
- attr.setEntity(entity);
-
- builder.appendDbAttribute(buf, attr);
- assertEquals("testAttr", buf.toString());
- }
+ public void testConstructor() throws Exception {
+ DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
+ BatchQueryBuilder builder = new BatchQueryBuilder(mock(BatchQuery.class), adapter) {
+ @Override
+ public String createSqlString() {
+ return null;
+ }
+
+ @Override
+ public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
+ }
+ };
+
+ assertSame(adapter, builder.getAdapter());
+ }
+
+ public void testAppendDbAttribute1() throws Exception {
+ DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
+ String trimFunction = "testTrim";
+
+ BatchQueryBuilder builder = new BatchQueryBuilder(mock(BatchQuery.class), adapter) {
+ @Override
+ public String createSqlString() {
+ return null;
+ }
+
+ @Override
+ public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
+ }
+ };
+
+ builder.setTrimFunction(trimFunction);
+
+ StringBuffer buf = new StringBuffer();
+ DbEntity entity = new DbEntity("Test");
+ DbAttribute attr = new DbAttribute("testAttr", Types.CHAR, null);
+ attr.setEntity(entity);
+ builder.appendDbAttribute(buf, attr);
+ assertEquals("testTrim(testAttr)", buf.toString());
+
+ buf = new StringBuffer();
+ attr = new DbAttribute("testAttr", Types.VARCHAR, null);
+ attr.setEntity(entity);
+ builder.appendDbAttribute(buf, attr);
+ assertEquals("testAttr", buf.toString());
+ }
+
+ public void testAppendDbAttribute2() throws Exception {
+ DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
+
+ BatchQueryBuilder builder = new BatchQueryBuilder(mock(BatchQuery.class), adapter) {
+ @Override
+ public String createSqlString() {
+ return null;
+ }
+
+ @Override
+ public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
+ }
+ };
+
+ StringBuffer buf = new StringBuffer();
+ DbEntity entity = new DbEntity("Test");
+
+ DbAttribute attr = new DbAttribute("testAttr", Types.CHAR, null);
+ attr.setEntity(entity);
+ builder.appendDbAttribute(buf, attr);
+ assertEquals("testAttr", buf.toString());
+
+ buf = new StringBuffer();
+ attr = new DbAttribute("testAttr", Types.VARCHAR, null);
+ attr.setEntity(entity);
+
+ builder.appendDbAttribute(buf, attr);
+ assertEquals("testAttr", buf.toString());
+ }
}
Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilderTest.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilderTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilderTest.java Fri Mar 14 14:32:07 2014
@@ -19,6 +19,8 @@
package org.apache.cayenne.access.trans;
+import static org.mockito.Mockito.mock;
+
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -55,7 +57,7 @@ public class DeleteBatchQueryBuilderTest
public void testConstructor() throws Exception {
DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
- DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
+ DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(mock(DeleteBatchQuery.class), adapter);
assertSame(adapter, builder.getAdapter());
}
@@ -69,8 +71,8 @@ public class DeleteBatchQueryBuilderTest
DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, null, 1);
DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
- DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
- String generatedSql = builder.createSqlString(deleteQuery);
+ DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(deleteQuery, adapter);
+ String generatedSql = builder.createSqlString();
assertNotNull(generatedSql);
assertEquals("DELETE FROM " + entity.getName() + " WHERE LOCKING_TEST_ID = ?", generatedSql);
}
@@ -87,8 +89,8 @@ public class DeleteBatchQueryBuilderTest
DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, nullAttributes, 1);
DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
- DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
- String generatedSql = builder.createSqlString(deleteQuery);
+ DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(deleteQuery, adapter);
+ String generatedSql = builder.createSqlString();
assertNotNull(generatedSql);
assertEquals("DELETE FROM " + entity.getName() + " WHERE LOCKING_TEST_ID = ? AND NAME IS NULL", generatedSql);
}
@@ -103,8 +105,8 @@ public class DeleteBatchQueryBuilderTest
DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, null, 1);
JdbcAdapter adapter = (JdbcAdapter) this.adapter;
- DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
- String generatedSql = builder.createSqlString(deleteQuery);
+ DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(deleteQuery, adapter);
+ String generatedSql = builder.createSqlString();
String charStart = unitAdapter.getIdentifiersStartQuote();
String charEnd = unitAdapter.getIdentifiersEndQuote();
@@ -134,8 +136,8 @@ public class DeleteBatchQueryBuilderTest
JdbcAdapter adapter = (JdbcAdapter) this.adapter;
- DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
- String generatedSql = builder.createSqlString(deleteQuery);
+ DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(deleteQuery, adapter);
+ String generatedSql = builder.createSqlString();
String charStart = unitAdapter.getIdentifiersStartQuote();
String charEnd = unitAdapter.getIdentifiersEndQuote();
Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilderTest.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilderTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilderTest.java Fri Mar 14 14:32:07 2014
@@ -18,6 +18,8 @@
****************************************************************/
package org.apache.cayenne.access.trans;
+import static org.mockito.Mockito.mock;
+
import org.apache.cayenne.configuration.server.ServerRuntime;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.JdbcAdapter;
@@ -48,7 +50,7 @@ public class InsertBatchQueryBuilderTest
public void testConstructor() throws Exception {
DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
- DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
+ InsertBatchQueryBuilder builder = new InsertBatchQueryBuilder(mock(InsertBatchQuery.class), adapter);
assertSame(adapter, builder.getAdapter());
}
@@ -58,9 +60,9 @@ public class InsertBatchQueryBuilderTest
.getDbEntity();
DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
- InsertBatchQuery deleteQuery = new InsertBatchQuery(entity, 1);
- InsertBatchQueryBuilder builder = new InsertBatchQueryBuilder(adapter);
- String generatedSql = builder.createSqlString(deleteQuery);
+ InsertBatchQuery insertQuery = new InsertBatchQuery(entity, 1);
+ InsertBatchQueryBuilder builder = new InsertBatchQueryBuilder(insertQuery, adapter);
+ String generatedSql = builder.createSqlString();
assertNotNull(generatedSql);
assertEquals("INSERT INTO " + entity.getName() + " (DESCRIPTION, LOCKING_TEST_ID, NAME) VALUES (?, ?, ?)",
generatedSql);
@@ -75,9 +77,9 @@ public class InsertBatchQueryBuilderTest
JdbcAdapter adapter = (JdbcAdapter) this.adapter;
- InsertBatchQuery deleteQuery = new InsertBatchQuery(entity, 1);
- InsertBatchQueryBuilder builder = new InsertBatchQueryBuilder(adapter);
- String generatedSql = builder.createSqlString(deleteQuery);
+ InsertBatchQuery insertQuery = new InsertBatchQuery(entity, 1);
+ InsertBatchQueryBuilder builder = new InsertBatchQueryBuilder(insertQuery, adapter);
+ String generatedSql = builder.createSqlString();
String charStart = unitAdapter.getIdentifiersStartQuote();
String charEnd = unitAdapter.getIdentifiersEndQuote();
assertNotNull(generatedSql);
Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilderTest.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilderTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilderTest.java Fri Mar 14 14:32:07 2014
@@ -19,6 +19,8 @@
package org.apache.cayenne.access.trans;
+import static org.mockito.Mockito.mock;
+
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -53,7 +55,7 @@ public class UpdateBatchQueryBuilderTest
public void testConstructor() throws Exception {
DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
- UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(adapter);
+ UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(mock(UpdateBatchQuery.class), adapter);
assertSame(adapter, builder.getAdapter());
}
@@ -67,8 +69,8 @@ public class UpdateBatchQueryBuilderTest
UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, idAttributes, updatedAttributes, null, 1);
DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
- UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(adapter);
- String generatedSql = builder.createSqlString(updateQuery);
+ UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(updateQuery, adapter);
+ String generatedSql = builder.createSqlString();
assertNotNull(generatedSql);
assertEquals("UPDATE " + entity.getName() + " SET DESCRIPTION = ? WHERE LOCKING_TEST_ID = ?", generatedSql);
}
@@ -86,8 +88,8 @@ public class UpdateBatchQueryBuilderTest
UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, idAttributes, updatedAttributes, nullAttributes, 1);
DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
- UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(adapter);
- String generatedSql = builder.createSqlString(updateQuery);
+ UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(updateQuery, adapter);
+ String generatedSql = builder.createSqlString();
assertNotNull(generatedSql);
assertEquals("UPDATE " + entity.getName() + " SET DESCRIPTION = ? WHERE LOCKING_TEST_ID = ? AND NAME IS NULL",
@@ -106,8 +108,8 @@ public class UpdateBatchQueryBuilderTest
UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, idAttributes, updatedAttributes, null, 1);
JdbcAdapter adapter = (JdbcAdapter) this.adapter;
- UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(adapter);
- String generatedSql = builder.createSqlString(updateQuery);
+ UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(updateQuery, adapter);
+ String generatedSql = builder.createSqlString();
String charStart = unitAdapter.getIdentifiersStartQuote();
String charEnd = unitAdapter.getIdentifiersEndQuote();
@@ -137,8 +139,8 @@ public class UpdateBatchQueryBuilderTest
nullAttributes, 1);
JdbcAdapter adapter = (JdbcAdapter) this.adapter;
- UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(adapter);
- String generatedSql = builder.createSqlString(updateQuery);
+ UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(updateQuery, adapter);
+ String generatedSql = builder.createSqlString();
assertNotNull(generatedSql);
String charStart = unitAdapter.getIdentifiersStartQuote();