From d1a40d567611e44426a0ae9e7afe65a8d7c766ff Mon Sep 17 00:00:00 2001 From: rbygrave Date: Wed, 17 Dec 2014 00:31:29 +1300 Subject: [PATCH] Enable disallowBatchOnCascade per DatabasePlatform (added for SQL Server) --- .../java/com/avaje/ebean/config/ServerConfig.java | 12 ++++++++++++ .../server/transaction/TransactionManager.java | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/avaje/ebean/config/ServerConfig.java b/src/main/java/com/avaje/ebean/config/ServerConfig.java index 6954ff4f0..c57336b07 100644 --- a/src/main/java/com/avaje/ebean/config/ServerConfig.java +++ b/src/main/java/com/avaje/ebean/config/ServerConfig.java @@ -1828,4 +1828,16 @@ public class ServerConfig { } return hitList; } + + /** + * Return the PersistBatch mode to use for 'batchOnCascade' taking into account if the database + * platform supports getGeneratedKeys in batch mode. + *

+ * Used to effectively turn off batchOnCascade for SQL Server - still allows explicit batch mode. + *

+ */ + public PersistBatch appliedPersistBatchOnCascade() { + + return databasePlatform.isDisallowBatchOnCascade() ? PersistBatch.NONE : persistBatchOnCascade; + } } diff --git a/src/main/java/com/avaje/ebeaninternal/server/transaction/TransactionManager.java b/src/main/java/com/avaje/ebeaninternal/server/transaction/TransactionManager.java index 43e111b7e..7680704b2 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/transaction/TransactionManager.java +++ b/src/main/java/com/avaje/ebeaninternal/server/transaction/TransactionManager.java @@ -106,7 +106,7 @@ public class TransactionManager { BeanDescriptorManager descMgr, BootupClasses bootupClasses) { this.persistBatch = config.getPersistBatch(); - this.persistBatchOnCascade = config.getPersistBatchOnCascade(); + this.persistBatchOnCascade = config.appliedPersistBatchOnCascade(); this.beanDescriptorManager = descMgr; this.clusterManager = clusterManager; this.serverName = config.getName();