#1425 - Stateless update with OneToMany with SoftDelete and deleteMissingChildren = true ... does a hard delete

This commit is contained in:
rob bygrave
2018-06-14 16:09:45 +12:00
parent e21839de91
commit 81c6d4601d
13 changed files with 259 additions and 75 deletions
@@ -6,6 +6,7 @@ import io.ebeaninternal.api.SpiEbeanServer;
import io.ebeaninternal.server.core.DefaultSqlUpdate;
import io.ebeaninternal.server.expression.DefaultExpressionRequest;
import io.ebeaninternal.server.expression.IdInExpression;
import io.ebeaninternal.server.persist.DeleteMode;
import java.util.LinkedHashMap;
import java.util.List;
@@ -72,16 +73,16 @@ public class IntersectionRow {
return new DefaultSqlUpdate(server, sb.toString(), bindParams);
}
public SqlUpdate createDelete(SpiEbeanServer server, boolean softDelete) {
public SqlUpdate createDelete(SpiEbeanServer server, DeleteMode deleteMode) {
BindParams bindParams = new BindParams();
StringBuilder sb = new StringBuilder();
if (softDelete) {
if (deleteMode.isHard()) {
sb.append("delete from ").append(tableName);
} else {
sb.append("update ").append(tableName).append(" set ");
sb.append(targetDescriptor.getSoftDeleteDbSet());
} else {
sb.append("delete from ").append(tableName);
}
sb.append(" where ");