From 35744796275bef8b57d3c2446c468f67f01e32f0 Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Sun, 15 Sep 2019 21:29:25 +1200 Subject: [PATCH] #1821 - Remove serverConfig updateChangesOnly mode ... as always true --- .../java/io/ebean/config/ServerConfig.java | 20 --------------- .../server/core/PersistRequestBean.java | 10 -------- .../server/deploy/BeanDescriptor.java | 14 ----------- .../server/deploy/BeanDescriptorManager.java | 9 ------- .../deploy/meta/DeployBeanDescriptor.java | 10 -------- .../server/deploy/parse/AnnotationClass.java | 6 ----- .../server/persist/dml/MetaFactory.java | 4 +-- .../server/persist/dml/UpdateMeta.java | 25 ++----------------- 8 files changed, 3 insertions(+), 95 deletions(-) diff --git a/src/main/java/io/ebean/config/ServerConfig.java b/src/main/java/io/ebean/config/ServerConfig.java index 3603fa9d2..e8534e30e 100644 --- a/src/main/java/io/ebean/config/ServerConfig.java +++ b/src/main/java/io/ebean/config/ServerConfig.java @@ -350,11 +350,6 @@ public class ServerConfig { */ private DbConstraintNaming constraintNaming = new DbConstraintNaming(); - /** - * Behaviour of update to include on the change properties. - */ - private boolean updateChangesOnly = true; - /** * Behaviour of updates in JDBC batch to by default include all properties. */ @@ -2409,20 +2404,6 @@ public class ServerConfig { this.skipCacheAfterWrite = skipCacheAfterWrite; } - /** - * Return true to only update changed properties. - */ - public boolean isUpdateChangesOnly() { - return updateChangesOnly; - } - - /** - * Set to true to only update changed properties. - */ - public void setUpdateChangesOnly(boolean updateChangesOnly) { - this.updateChangesOnly = updateChangesOnly; - } - /** * Returns true if updates in JDBC batch default to include all properties by default. */ @@ -2966,7 +2947,6 @@ public class ServerConfig { skipCacheAfterWrite = p.getBoolean("skipCacheAfterWrite", skipCacheAfterWrite); updateAllPropertiesInBatch = p.getBoolean("updateAllPropertiesInBatch", updateAllPropertiesInBatch); - updateChangesOnly = p.getBoolean("updateChangesOnly", updateChangesOnly); boolean defaultDeleteMissingChildren = p.getBoolean("defaultDeleteMissingChildren", updatesDeleteMissingChildren); updatesDeleteMissingChildren = p.getBoolean("updatesDeleteMissingChildren", defaultDeleteMissingChildren); diff --git a/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java b/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java index 42b126a5b..b892f21c3 100644 --- a/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java +++ b/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java @@ -1051,16 +1051,6 @@ public final class PersistRequestBean extends PersistRequest implements BeanP } } - /** - * Return true if the update DML/SQL must be dynamically generated. - *

- * This is the case for updates/deletes of partially populated beans. - *

- */ - public boolean isDynamicUpdateSql() { - return beanDescriptor.isUpdateChangesOnly() || !intercept.isFullyLoadedBean(); - } - /** * Return true if the property should be included in the update. */ diff --git a/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java b/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java index 8e43f8099..a8c70e7e2 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java +++ b/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptor.java @@ -406,11 +406,6 @@ public class BeanDescriptor implements BeanType, STreeType { private final String baseTableAlias; - /** - * If true then only changed properties get updated. - */ - private final boolean updateChangesOnly; - private final boolean cacheSharableBeans; private final String docStoreQueueId; @@ -466,7 +461,6 @@ public class BeanDescriptor implements BeanType, STreeType { this.selectLastInsertedId = deploy.getSelectLastInsertedId(); this.selectLastInsertedIdDraft = deploy.getSelectLastInsertedIdDraft(); this.concurrencyMode = deploy.getConcurrencyMode(); - this.updateChangesOnly = deploy.isUpdateChangesOnly(); this.indexDefinitions = deploy.getIndexDefinitions(); this.readAuditing = deploy.isReadAuditing(); @@ -1703,14 +1697,6 @@ public class BeanDescriptor implements BeanType, STreeType { return "update " + baseTable + " set " + prop.importedIdClause() + " where " + idBinder.getBindIdSql(null); } - /** - * Return true if updates should only include changed properties. Otherwise - * all loaded properties are included in the update. - */ - public boolean isUpdateChangesOnly() { - return updateChangesOnly; - } - /** * Return true if save does not recurse to other beans. That is return true if * there are no assoc one or assoc many beans that cascade save. diff --git a/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java b/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java index 8e82965e4..9ec66ea38 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java +++ b/src/main/java/io/ebeaninternal/server/deploy/BeanDescriptorManager.java @@ -144,8 +144,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap { private int entityBeanCount; - private final boolean updateChangesOnly; - private final BootupClasses bootupClasses; private final String serverName; @@ -227,11 +225,7 @@ public class BeanDescriptorManager implements BeanDescriptorMap { this.deplyInherit = config.getDeployInherit(); this.deployUtil = config.getDeployUtil(); this.typeManager = deployUtil.getTypeManager(); - this.beanManagerFactory = new BeanManagerFactory(config.getDatabasePlatform()); - - this.updateChangesOnly = serverConfig.isUpdateChangesOnly(); - this.beanLifecycleAdapterFactory = new BeanLifecycleAdapterFactory(serverConfig); this.persistControllerManager = new PersistControllerManager(bootupClasses); this.postLoadManager = new PostLoadManager(bootupClasses); @@ -1310,9 +1304,6 @@ public class BeanDescriptorManager implements BeanDescriptorMap { private DeployBeanInfo createDeployBeanInfo(Class beanClass) { DeployBeanDescriptor desc = new DeployBeanDescriptor<>(this, beanClass, serverConfig); - - desc.setUpdateChangesOnly(updateChangesOnly); - beanLifecycleAdapterFactory.addLifecycleMethods(desc); // set bean controller, finder and listener diff --git a/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanDescriptor.java b/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanDescriptor.java index c8c8a2a1c..36f6526bb 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanDescriptor.java +++ b/src/main/java/io/ebeaninternal/server/deploy/meta/DeployBeanDescriptor.java @@ -131,8 +131,6 @@ public class DeployBeanDescriptor { */ private ConcurrencyMode concurrencyMode; - private boolean updateChangesOnly; - private List indexDefinitions; private String storageEngine; @@ -523,14 +521,6 @@ public class DeployBeanDescriptor { this.concurrencyMode = concurrencyMode; } - public boolean isUpdateChangesOnly() { - return updateChangesOnly; - } - - public void setUpdateChangesOnly(boolean updateChangesOnly) { - this.updateChangesOnly = updateChangesOnly; - } - /** * Add a compound unique constraint. */ diff --git a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java index 540f5ca83..80f563c03 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java +++ b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationClass.java @@ -11,7 +11,6 @@ import io.ebean.annotation.Index; import io.ebean.annotation.InvalidateQueryCache; import io.ebean.annotation.ReadAudit; import io.ebean.annotation.StorageEngine; -import io.ebean.annotation.UpdateMode; import io.ebean.annotation.View; import io.ebean.config.TableName; import io.ebeaninternal.server.deploy.BeanDescriptor.EntityType; @@ -190,11 +189,6 @@ public class AnnotationClass extends AnnotationParser { descriptor.setDbComment(comment.value()); } - UpdateMode updateMode = findAnnotationRecursive(cls, UpdateMode.class); - if (updateMode != null) { - descriptor.setUpdateChangesOnly(updateMode.updateChangesOnly()); - } - if (!disableL2Cache) { Cache cache = findAnnotationRecursive(cls, Cache.class); if (cache != null) { diff --git a/src/main/java/io/ebeaninternal/server/persist/dml/MetaFactory.java b/src/main/java/io/ebeaninternal/server/persist/dml/MetaFactory.java index bbc795bd6..6df6d088c 100644 --- a/src/main/java/io/ebeaninternal/server/persist/dml/MetaFactory.java +++ b/src/main/java/io/ebeaninternal/server/persist/dml/MetaFactory.java @@ -67,10 +67,8 @@ class MetaFactory { BindableId id = idFact.createId(desc); Bindable version = versionFact.create(desc); Bindable tenantId = versionFact.createTenantId(desc); - BindableList setBindable = new BindableList(setList); - - return new UpdateMeta(desc, setBindable, id, version, tenantId); + return new UpdateMeta(setBindable, id, version, tenantId); } /** diff --git a/src/main/java/io/ebeaninternal/server/persist/dml/UpdateMeta.java b/src/main/java/io/ebeaninternal/server/persist/dml/UpdateMeta.java index 6c16f7259..49dbbaea4 100644 --- a/src/main/java/io/ebeaninternal/server/persist/dml/UpdateMeta.java +++ b/src/main/java/io/ebeaninternal/server/persist/dml/UpdateMeta.java @@ -20,17 +20,10 @@ import java.util.List; final class UpdateMeta extends BaseMeta { private final BindableList set; - private final UpdatePlan modeNoneUpdatePlan; - private final UpdatePlan modeVersionUpdatePlan; - UpdateMeta(BeanDescriptor desc, BindableList set, BindableId id, Bindable version, Bindable tenantId) { + UpdateMeta(BindableList set, BindableId id, Bindable version, Bindable tenantId) { super(id, version, tenantId); this.set = set; - - String sqlNone = genSql(ConcurrencyMode.NONE, set, desc.getBaseTable()); - String sqlVersion = genSql(ConcurrencyMode.VERSION, set, desc.getBaseTable()); - this.modeNoneUpdatePlan = new UpdatePlan(ConcurrencyMode.NONE, sqlNone, set); - this.modeVersionUpdatePlan = new UpdatePlan(ConcurrencyMode.VERSION, sqlVersion, set); } /** @@ -56,21 +49,7 @@ final class UpdateMeta extends BaseMeta { * get or generate the sql based on the concurrency mode. */ SpiUpdatePlan getUpdatePlan(PersistRequestBean request) { - - if (request.isDynamicUpdateSql()) { - return getDynamicUpdatePlan(request); - } - - switch (request.getConcurrencyMode()) { - case NONE: - return modeNoneUpdatePlan; - - case VERSION: - return modeVersionUpdatePlan; - - default: - throw new RuntimeException("Invalid mode " + request.getConcurrencyMode()); - } + return getDynamicUpdatePlan(request); } private SpiUpdatePlan getDynamicUpdatePlan(PersistRequestBean persistRequest) {