From 524e3e31f0cd8235b839d16d6546e0933e06e322 Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Thu, 5 Mar 2020 01:10:41 +1300 Subject: [PATCH] Refactor rename Transaction setGetGeneratedKeys(), setFlushOnMixed() setFlushOnQuery() ... (remove the "batch" part) --- src/main/java/io/ebean/Transaction.java | 44 ++++++++++++++++--- .../io/ebean/text/csv/DefaultCsvCallback.java | 2 +- .../java/io/ebeaninternal/api/ScopeTrans.java | 10 ++--- .../api/SpiTransactionProxy.java | 16 +++---- .../server/query/DefaultOrmQueryEngine.java | 2 +- .../ImplicitReadOnlyTransaction.java | 8 ++-- .../server/transaction/JdbcTransaction.java | 8 ++-- .../server/transaction/NoTransaction.java | 8 ++-- .../batchinsert/TestBatchInsertSimple.java | 4 +- .../tests/transaction/TestSqlServerBatch.java | 4 +- 10 files changed, 69 insertions(+), 37 deletions(-) diff --git a/src/main/java/io/ebean/Transaction.java b/src/main/java/io/ebean/Transaction.java index 9dd51c00d..0506a29ed 100644 --- a/src/main/java/io/ebean/Transaction.java +++ b/src/main/java/io/ebean/Transaction.java @@ -313,7 +313,7 @@ public interface Transaction extends AutoCloseable { *

getGeneratedKeys

*

* Often with large batch inserts we want to turn off getGeneratedKeys. We do - * this via {@link #setBatchGetGeneratedKeys(boolean)}. + * this via {@link #setGetGeneratedKeys(boolean)}. * Also note that some JDBC drivers do not support getGeneratedKeys in JDBC batch mode. *

*
{@code
@@ -342,7 +342,7 @@ public interface Transaction extends AutoCloseable {
    * 

*

* We use {@link #flush()} to explicitly flush the batch and we can use - * {@link #setBatchFlushOnQuery(boolean)} and {@link #setBatchFlushOnMixed(boolean)} + * {@link #setFlushOnQuery(boolean)} and {@link #setFlushOnMixed(boolean)} * to control the automatic flushing behaviour. *

*

@@ -432,7 +432,15 @@ public interface Transaction extends AutoCloseable { * number of objects and you don't care about getting back the ids. *

*/ - void setBatchGetGeneratedKeys(boolean getGeneratedKeys); + void setGetGeneratedKeys(boolean getGeneratedKeys); + + /** + * Deprecated renamed to setGetGeneratedKeys(). + */ + @Deprecated + default void setBatchGetGeneratedKeys(boolean getGeneratedKeys) { + setGetGeneratedKeys(getGeneratedKeys); + } /** * By default when mixing UpdateSql (or CallableSql) with Beans the batch is @@ -449,7 +457,15 @@ public interface Transaction extends AutoCloseable { * have a 2 step process (delayed binding). *

*/ - void setBatchFlushOnMixed(boolean batchFlushOnMixed); + void setFlushOnMixed(boolean batchFlushOnMixed); + + /** + * Deprecated renamed to setFlushOnMixed(). + */ + @Deprecated + default void setBatchFlushOnMixed(boolean batchFlushOnMixed) { + setFlushOnMixed(batchFlushOnMixed); + } /** * By default executing a query will automatically flush any batched @@ -459,7 +475,15 @@ public interface Transaction extends AutoCloseable { * execute a query and the batch will not be automatically flushed. *

*/ - void setBatchFlushOnQuery(boolean batchFlushOnQuery); + void setFlushOnQuery(boolean batchFlushOnQuery); + + /** + * Deprecated renamed to setFlushOnQuery(). + */ + @Deprecated + default void setBatchFlushOnQuery(boolean batchFlushOnQuery) { + setFlushOnQuery(batchFlushOnQuery); + } /** * Return true if the batch (of persisted beans or executed UpdateSql etc) @@ -468,7 +492,15 @@ public interface Transaction extends AutoCloseable { * The default is for this to be true. *

*/ - boolean isBatchFlushOnQuery(); + boolean isFlushOnQuery(); + + /** + * Deprecated renamed to isFlushOnQuery(). + */ + @Deprecated + default boolean isBatchFlushOnQuery() { + return isFlushOnQuery(); + } /** * The batch will be flushing automatically but you can use this to explicitly diff --git a/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java b/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java index b9c7daa46..18b4dd282 100644 --- a/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java +++ b/src/main/java/io/ebean/text/csv/DefaultCsvCallback.java @@ -171,7 +171,7 @@ public class DefaultCsvCallback implements CsvCallback { logger.info("Creating transaction, batchSize[" + persistBatchSize + "]"); transaction.setBatchMode(true); transaction.setBatchSize(persistBatchSize); - transaction.setBatchGetGeneratedKeys(false); + transaction.setGetGeneratedKeys(false); } else { // explicitly turn off JDBC batching in case diff --git a/src/main/java/io/ebeaninternal/api/ScopeTrans.java b/src/main/java/io/ebeaninternal/api/ScopeTrans.java index 0eb06f950..5fbb03f25 100644 --- a/src/main/java/io/ebeaninternal/api/ScopeTrans.java +++ b/src/main/java/io/ebeaninternal/api/ScopeTrans.java @@ -71,13 +71,13 @@ public class ScopeTrans { restoreBatchOnCascade = transaction.isBatchOnCascade(); restoreBatchSize = transaction.getBatchSize(); restoreBatchGeneratedKeys = transaction.getBatchGetGeneratedKeys(); - restoreBatchFlushOnQuery = transaction.isBatchFlushOnQuery(); + restoreBatchFlushOnQuery = transaction.isFlushOnQuery(); } if (txScope.isBatchSet()) { transaction.setBatchMode(txScope.isBatchMode()); } if (!txScope.isFlushOnQuery()) { - transaction.setBatchFlushOnQuery(false); + transaction.setFlushOnQuery(false); } if (txScope.isBatchOnCascadeSet()) { transaction.setBatchOnCascade(txScope.isBatchOnCascade()); @@ -86,7 +86,7 @@ public class ScopeTrans { transaction.setBatchSize(txScope.getBatchSize()); } if (txScope.isSkipGeneratedKeys()) { - transaction.setBatchGetGeneratedKeys(false); + transaction.setGetGeneratedKeys(false); } } @@ -136,7 +136,7 @@ public class ScopeTrans { transaction.commit(); } else { nestedCommit = true; - transaction.setBatchFlushOnQuery(restoreBatchFlushOnQuery); + transaction.setFlushOnQuery(restoreBatchFlushOnQuery); if (restoreBatch != null) { transaction.setBatchMode(restoreBatch); } @@ -147,7 +147,7 @@ public class ScopeTrans { transaction.setBatchSize(restoreBatchSize); } if (restoreBatchGeneratedKeys != null) { - transaction.setBatchGetGeneratedKeys(restoreBatchGeneratedKeys); + transaction.setGetGeneratedKeys(restoreBatchGeneratedKeys); } } } diff --git a/src/main/java/io/ebeaninternal/api/SpiTransactionProxy.java b/src/main/java/io/ebeaninternal/api/SpiTransactionProxy.java index 77da82b6c..31f83c06a 100644 --- a/src/main/java/io/ebeaninternal/api/SpiTransactionProxy.java +++ b/src/main/java/io/ebeaninternal/api/SpiTransactionProxy.java @@ -269,8 +269,8 @@ public abstract class SpiTransactionProxy implements SpiTransaction { } @Override - public void setBatchGetGeneratedKeys(boolean getGeneratedKeys) { - transaction.setBatchGetGeneratedKeys(getGeneratedKeys); + public void setGetGeneratedKeys(boolean getGeneratedKeys) { + transaction.setGetGeneratedKeys(getGeneratedKeys); } @Override @@ -279,18 +279,18 @@ public abstract class SpiTransactionProxy implements SpiTransaction { } @Override - public void setBatchFlushOnMixed(boolean batchFlushOnMixed) { - transaction.setBatchFlushOnMixed(batchFlushOnMixed); + public void setFlushOnMixed(boolean batchFlushOnMixed) { + transaction.setFlushOnMixed(batchFlushOnMixed); } @Override - public void setBatchFlushOnQuery(boolean batchFlushOnQuery) { - transaction.setBatchFlushOnQuery(batchFlushOnQuery); + public void setFlushOnQuery(boolean batchFlushOnQuery) { + transaction.setFlushOnQuery(batchFlushOnQuery); } @Override - public boolean isBatchFlushOnQuery() { - return transaction.isBatchFlushOnQuery(); + public boolean isFlushOnQuery() { + return transaction.isFlushOnQuery(); } @Override diff --git a/src/main/java/io/ebeaninternal/server/query/DefaultOrmQueryEngine.java b/src/main/java/io/ebeaninternal/server/query/DefaultOrmQueryEngine.java index f82e13ebf..7423a0d0d 100644 --- a/src/main/java/io/ebeaninternal/server/query/DefaultOrmQueryEngine.java +++ b/src/main/java/io/ebeaninternal/server/query/DefaultOrmQueryEngine.java @@ -54,7 +54,7 @@ public class DefaultOrmQueryEngine implements OrmQueryEngine { private void flushJdbcBatchOnQuery(OrmQueryRequest request) { SpiTransaction t = request.getTransaction(); - if (t.isBatchFlushOnQuery()) { + if (t.isFlushOnQuery()) { // before we perform a query, we need to flush any // previous persist requests that are queued/batched. // The query may read data affected by those requests. diff --git a/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java b/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java index 474d4ae53..9bc071938 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java +++ b/src/main/java/io/ebeaninternal/server/transaction/ImplicitReadOnlyTransaction.java @@ -302,11 +302,11 @@ class ImplicitReadOnlyTransaction implements SpiTransaction, TxnProfileEventCode } @Override - public void setBatchGetGeneratedKeys(boolean getGeneratedKeys) { + public void setGetGeneratedKeys(boolean getGeneratedKeys) { } @Override - public void setBatchFlushOnMixed(boolean batchFlushOnMixed) { + public void setFlushOnMixed(boolean batchFlushOnMixed) { } /** @@ -325,12 +325,12 @@ class ImplicitReadOnlyTransaction implements SpiTransaction, TxnProfileEventCode } @Override - public boolean isBatchFlushOnQuery() { + public boolean isFlushOnQuery() { return false; } @Override - public void setBatchFlushOnQuery(boolean batchFlushOnQuery) { + public void setFlushOnQuery(boolean batchFlushOnQuery) { } /** diff --git a/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java b/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java index 3accea486..6274f0fcb 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java +++ b/src/main/java/io/ebeaninternal/server/transaction/JdbcTransaction.java @@ -589,7 +589,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { } @Override - public void setBatchGetGeneratedKeys(boolean getGeneratedKeys) { + public void setGetGeneratedKeys(boolean getGeneratedKeys) { this.batchGetGeneratedKeys = getGeneratedKeys; if (batchControl != null) { batchControl.setGetGeneratedKeys(getGeneratedKeys); @@ -597,7 +597,7 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { } @Override - public void setBatchFlushOnMixed(boolean batchFlushOnMixed) { + public void setFlushOnMixed(boolean batchFlushOnMixed) { this.batchFlushOnMixed = batchFlushOnMixed; if (batchControl != null) { batchControl.setBatchFlushOnMixed(batchFlushOnMixed); @@ -624,12 +624,12 @@ class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes { } @Override - public boolean isBatchFlushOnQuery() { + public boolean isFlushOnQuery() { return batchFlushOnQuery; } @Override - public void setBatchFlushOnQuery(boolean batchFlushOnQuery) { + public void setFlushOnQuery(boolean batchFlushOnQuery) { this.batchFlushOnQuery = batchFlushOnQuery; } diff --git a/src/main/java/io/ebeaninternal/server/transaction/NoTransaction.java b/src/main/java/io/ebeaninternal/server/transaction/NoTransaction.java index 7dc8bf0d0..bfc88f69f 100644 --- a/src/main/java/io/ebeaninternal/server/transaction/NoTransaction.java +++ b/src/main/java/io/ebeaninternal/server/transaction/NoTransaction.java @@ -233,19 +233,19 @@ class NoTransaction implements SpiTransaction { } @Override - public void setBatchGetGeneratedKeys(boolean getGeneratedKeys) { + public void setGetGeneratedKeys(boolean getGeneratedKeys) { } @Override - public void setBatchFlushOnMixed(boolean batchFlushOnMixed) { + public void setFlushOnMixed(boolean batchFlushOnMixed) { } @Override - public void setBatchFlushOnQuery(boolean batchFlushOnQuery) { + public void setFlushOnQuery(boolean batchFlushOnQuery) { } @Override - public boolean isBatchFlushOnQuery() { + public boolean isFlushOnQuery() { return false; } diff --git a/src/test/java/org/tests/batchinsert/TestBatchInsertSimple.java b/src/test/java/org/tests/batchinsert/TestBatchInsertSimple.java index ab7ec9c0f..376feef41 100644 --- a/src/test/java/org/tests/batchinsert/TestBatchInsertSimple.java +++ b/src/test/java/org/tests/batchinsert/TestBatchInsertSimple.java @@ -34,7 +34,7 @@ public class TestBatchInsertSimple extends BaseTestCase { transaction.setBatchOnCascade(true); transaction.setBatchSize(30); // setBatchGetGeneratedKeys MUST be turned off for MS SQL Server because :( - transaction.setBatchGetGeneratedKeys(false); + transaction.setGetGeneratedKeys(false); for (int i = 0; i < numOfMasters; i++) { UTMaster master = createMasterAndDetails(i, 20); @@ -108,7 +108,7 @@ public class TestBatchInsertSimple extends BaseTestCase { transaction.setBatchOnCascade(true); transaction.setBatchSize(30); // setBatchGetGeneratedKeys MUST be turned off for MS SQL Server because :( - transaction.setBatchGetGeneratedKeys(false); + transaction.setGetGeneratedKeys(false); for (int i = 0; i < numOfMasters; i++) { UTMaster master = createMaster(i); diff --git a/src/test/java/org/tests/transaction/TestSqlServerBatch.java b/src/test/java/org/tests/transaction/TestSqlServerBatch.java index 6b463236b..b6c1c7658 100644 --- a/src/test/java/org/tests/transaction/TestSqlServerBatch.java +++ b/src/test/java/org/tests/transaction/TestSqlServerBatch.java @@ -49,11 +49,11 @@ public class TestSqlServerBatch extends BaseTestCase { txn.setBatchSize(3); // control flushing when mixing save and queries - txn.setBatchFlushOnQuery(false); + txn.setFlushOnQuery(false); // for large batch insert processing when we do not // ... need the generatedKeys, don't get them - txn.setBatchGetGeneratedKeys(false); + txn.setGetGeneratedKeys(false); // explicitly flush the JDBC batch buffer txn.flushBatch();