mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-11-12 14:40:46 +00:00
#1417 - Breaking API - Remove PersistBatch.INSERT ... migrate to PersistBatch.ALL
This commit is contained in:
1 parent
117737c790
commit
8d976f83a9
14 files changed
+140
-73
No files matched your search
@@ -297,11 +297,25 @@ class ImplicitReadOnlyTransaction implements SpiTransaction, TxnProfileEventCode
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBatchMode() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBatchOnCascade() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PersistBatch getBatch() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBatchOnCascade(boolean batchMode) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBatchOnCascade(PersistBatch batchOnCascadeMode) {
|
||||
}
|
||||
@@ -353,7 +367,7 @@ class ImplicitReadOnlyTransaction implements SpiTransaction, TxnProfileEventCode
|
||||
* this request should be executed immediately.
|
||||
*/
|
||||
@Override
|
||||
public boolean isBatchThisRequest(PersistRequest.Type type) {
|
||||
public boolean isBatchThisRequest() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -118,11 +118,11 @@ public class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
|
||||
|
||||
protected Boolean updateAllLoadedProperties;
|
||||
|
||||
protected PersistBatch oldBatchMode;
|
||||
protected boolean oldBatchMode;
|
||||
|
||||
protected PersistBatch batchMode;
|
||||
protected boolean batchMode;
|
||||
|
||||
protected PersistBatch batchOnCascadeMode;
|
||||
protected boolean batchOnCascadeMode;
|
||||
|
||||
protected int batchSize = -1;
|
||||
|
||||
@@ -208,8 +208,8 @@ public class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
|
||||
this.logSql = false;
|
||||
this.logSummary = false;
|
||||
this.skipCacheAfterWrite = true;
|
||||
this.batchMode = PersistBatch.NONE;
|
||||
this.batchOnCascadeMode = PersistBatch.NONE;
|
||||
this.batchMode = false;
|
||||
this.batchOnCascadeMode = false;
|
||||
this.onQueryOnly = OnQueryOnly.ROLLBACK;
|
||||
} else {
|
||||
this.startMillis = manager.clockNowMillis();
|
||||
@@ -570,14 +570,6 @@ public class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
|
||||
|
||||
@Override
|
||||
public void setBatchMode(boolean batchMode) {
|
||||
if (!isActive()) {
|
||||
throw new IllegalStateException(illegalStateMessage);
|
||||
}
|
||||
this.batchMode = (batchMode) ? PersistBatch.ALL : PersistBatch.NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBatch(PersistBatch batchMode) {
|
||||
if (!isActive()) {
|
||||
throw new IllegalStateException(illegalStateMessage);
|
||||
}
|
||||
@@ -585,20 +577,40 @@ public class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
|
||||
}
|
||||
|
||||
@Override
|
||||
public PersistBatch getBatch() {
|
||||
public void setBatch(PersistBatch batchMode) {
|
||||
setBatchMode(PersistBatch.ALL == batchMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBatchMode() {
|
||||
return batchMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBatchOnCascade(PersistBatch batchOnCascadeMode) {
|
||||
public PersistBatch getBatch() {
|
||||
return batchMode ? PersistBatch.ALL : PersistBatch.NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBatchOnCascade(boolean batchMode) {
|
||||
if (!isActive()) {
|
||||
throw new IllegalStateException(illegalStateMessage);
|
||||
}
|
||||
this.batchOnCascadeMode = batchOnCascadeMode;
|
||||
this.batchOnCascadeMode = batchMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBatchOnCascade(PersistBatch batchMode) {
|
||||
setBatchOnCascade(PersistBatch.ALL == batchMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PersistBatch getBatchOnCascade() {
|
||||
return batchOnCascadeMode ? PersistBatch.ALL : PersistBatch.NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBatchOnCascade() {
|
||||
return batchOnCascadeMode;
|
||||
}
|
||||
|
||||
@@ -657,36 +669,18 @@ public class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
|
||||
* this request should be executed immediately.
|
||||
*/
|
||||
@Override
|
||||
public boolean isBatchThisRequest(PersistRequest.Type type) {
|
||||
public boolean isBatchThisRequest() {
|
||||
if (!batchOnCascadeSet && !explicit && depth <= 0) {
|
||||
// implicit transaction, no gain by batching where depth <= 0
|
||||
return false;
|
||||
}
|
||||
return isBatch(batchMode, type);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if JDBC batch should be used on cascade persist.
|
||||
*/
|
||||
private boolean isBatchOnCascade(PersistRequest.Type type) {
|
||||
return isBatch(batchOnCascadeMode, type);
|
||||
}
|
||||
|
||||
private boolean isBatch(PersistBatch batch, PersistRequest.Type type) {
|
||||
switch (batch) {
|
||||
case ALL:
|
||||
return true;
|
||||
case INSERT:
|
||||
return type == PersistRequest.Type.INSERT;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return batchMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkBatchEscalationOnCollection() {
|
||||
if (batchMode == PersistBatch.NONE && batchOnCascadeMode != PersistBatch.NONE) {
|
||||
batchMode = batchOnCascadeMode;
|
||||
if (!batchMode && batchOnCascadeMode) {
|
||||
batchMode = true;
|
||||
batchOnCascadeSet = true;
|
||||
}
|
||||
}
|
||||
@@ -696,7 +690,7 @@ public class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
|
||||
if (batchOnCascadeSet) {
|
||||
batchFlushReset();
|
||||
// restore the previous batch mode of NONE
|
||||
batchMode = PersistBatch.NONE;
|
||||
batchMode = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -753,15 +747,15 @@ public class JdbcTransaction implements SpiTransaction, TxnProfileEventCodes {
|
||||
@Override
|
||||
public boolean checkBatchEscalationOnCascade(PersistRequestBean<?> request) {
|
||||
|
||||
if (isBatch(batchMode, request.getType())) {
|
||||
if (batchMode) {
|
||||
// already batching (at top level)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isBatchOnCascade(request.getType())) {
|
||||
if (batchOnCascadeMode) {
|
||||
// escalate up to batch mode for this request (and cascade)
|
||||
oldBatchMode = batchMode;
|
||||
batchMode = PersistBatch.ALL;
|
||||
oldBatchMode = false;
|
||||
batchMode = true;
|
||||
batchFlushReset();
|
||||
// skip using jdbc batch for the top level bean (no gain there)
|
||||
request.setSkipBatchForTopLevel();
|
||||
|
||||
@@ -236,6 +236,15 @@ class NoTransaction implements SpiTransaction {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBatchMode() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBatchOnCascade(boolean batchMode) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBatchOnCascade(PersistBatch batchOnCascadeMode) {
|
||||
|
||||
@@ -246,6 +255,11 @@ class NoTransaction implements SpiTransaction {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBatchOnCascade() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBatchSize(int batchSize) {
|
||||
|
||||
@@ -337,7 +351,7 @@ class NoTransaction implements SpiTransaction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBatchThisRequest(PersistRequest.Type type) {
|
||||
public boolean isBatchThisRequest() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -97,9 +97,9 @@ public class TransactionManager implements SpiTransactionManager {
|
||||
*/
|
||||
protected final DocStoreUpdateProcessor docStoreUpdateProcessor;
|
||||
|
||||
protected final PersistBatch persistBatch;
|
||||
protected final boolean persistBatch;
|
||||
|
||||
protected final PersistBatch persistBatchOnCascade;
|
||||
protected final boolean persistBatchOnCascade;
|
||||
|
||||
protected final BulkEventListenerMap bulkEventListenerMap;
|
||||
|
||||
@@ -153,8 +153,8 @@ public class TransactionManager implements SpiTransactionManager {
|
||||
this.databasePlatform = options.config.getDatabasePlatform();
|
||||
this.skipCacheAfterWrite = options.config.isSkipCacheAfterWrite();
|
||||
this.notifyL2CacheInForeground = options.notifyL2CacheInForeground;
|
||||
this.persistBatch = options.config.getPersistBatch();
|
||||
this.persistBatchOnCascade = options.config.appliedPersistBatchOnCascade();
|
||||
this.persistBatch = PersistBatch.ALL == options.config.getPersistBatch();
|
||||
this.persistBatchOnCascade = PersistBatch.ALL == options.config.appliedPersistBatchOnCascade();
|
||||
this.rollbackOnChecked = options.config.isTransactionRollbackOnChecked();
|
||||
this.beanDescriptorManager = options.descMgr;
|
||||
this.viewInvalidation = options.descMgr.requiresViewEntityCacheInvalidation();
|
||||
@@ -271,11 +271,11 @@ public class TransactionManager implements SpiTransactionManager {
|
||||
return bulkEventListenerMap;
|
||||
}
|
||||
|
||||
public PersistBatch getPersistBatch() {
|
||||
public boolean getPersistBatch() {
|
||||
return persistBatch;
|
||||
}
|
||||
|
||||
public PersistBatch getPersistBatchOnCascade() {
|
||||
public boolean getPersistBatchOnCascade() {
|
||||
return persistBatchOnCascade;
|
||||
}
|
||||
|
||||
@@ -340,7 +340,7 @@ public class TransactionManager implements SpiTransactionManager {
|
||||
ExternalJdbcTransaction t = new ExternalJdbcTransaction(id, true, c, this);
|
||||
|
||||
// set the default batch mode
|
||||
t.setBatch(persistBatch);
|
||||
t.setBatchMode(persistBatch);
|
||||
t.setBatchOnCascade(persistBatchOnCascade);
|
||||
return t;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user