diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java index 2d3a30bb5..6682754cb 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/PersistRequestBean.java @@ -380,6 +380,14 @@ public final class PersistRequestBean extends PersistRequest implements BeanP return intercept.dirtyPropertyNames(); } + public boolean isChangedProperty(int propertyIndex) { + if (dirtyProperties == null) { + return intercept.isChangedProperty(propertyIndex); + } else { + return dirtyProperties[propertyIndex]; + } + } + /** * Return the dirty properties on this request. */ @@ -865,8 +873,8 @@ public final class PersistRequestBean extends PersistRequest implements BeanP } setNotifyCache(); boolean isChangeLog = beanDescriptor.isChangeLog(); - if (type == Type.UPDATE && (isChangeLog || notifyCache || docStoreMode == DocStoreMode.UPDATE)) { - // get the dirty properties for update notification to the doc store + if (type == Type.UPDATE) { + // get the dirty properties for notify cache & orphanRemoval of vanilla collection detection dirtyProperties = intercept.dirtyProperties(); } if (isChangeLog) { diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java index e3ccabbff..e82c16961 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java @@ -328,7 +328,7 @@ final class SaveManyBeans extends SaveManyBase { } private boolean isChangedProperty() { - return parentBean._ebean_getIntercept().isChangedProperty(many.propertyIndex()); + return request.isChangedProperty(many.propertyIndex()); } private void removeAssocManyOrphans() {