Przeglądaj źródła

use DAO deletion for dependencies

tags/2.0.1
Jonathan Cobb 4 lat temu
rodzic
commit
9d5475378a
2 zmienionych plików z 6 dodań i 3 usunięć
  1. +1
    -1
      wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/EntityReferences.java
  2. +5
    -2
      wizard-server/src/main/java/org/cobbzilla/wizard/server/config/PgRestServerConfiguration.java

+ 1
- 1
wizard-common/src/main/java/org/cobbzilla/wizard/model/entityconfig/EntityReferences.java Wyświetl plik

@@ -85,7 +85,7 @@ public class EntityReferences {
Arrays.stream(dependencyOrParent.getDeclaredFields())
.filter(FIELD_HAS_FK)
.filter(f -> f.getAnnotation(ECForeignKey.class).entity().equals(entityClass))
.forEach(f -> refs.add(new EntityFieldReference(dependency.getSimpleName(), f.getName())));
.forEach(f -> refs.add(new EntityFieldReference(dependency.getName(), f.getName())));
refs.addAll(getDependencyRefs(entityClass, dependency, dependencyOrParent.getSuperclass(), refs));
return refs;
}


+ 5
- 2
wizard-server/src/main/java/org/cobbzilla/wizard/server/config/PgRestServerConfiguration.java Wyświetl plik

@@ -15,6 +15,7 @@ import org.cobbzilla.util.jdbc.UncheckedSqlException;
import org.cobbzilla.util.string.StringUtil;
import org.cobbzilla.util.system.Command;
import org.cobbzilla.util.system.CommandResult;
import org.cobbzilla.wizard.dao.DAO;
import org.cobbzilla.wizard.model.Identifiable;
import org.cobbzilla.wizard.model.entityconfig.EntityFieldReference;
import org.cobbzilla.wizard.model.entityconfig.EntityReferences;
@@ -339,9 +340,11 @@ public class PgRestServerConfiguration extends RestServerConfiguration implement
}

public void deleteDependencies (Identifiable thing) {
final String[] uuidArg = {thing.getUuid()};
dependencyRefs(thing.getClass()).forEach(
dep -> execSql("DELETE FROM " + camelCaseToSnakeCase(dep.getEntity()) + " WHERE " + camelCaseToSnakeCase(dep.getField()) + " = ?", uuidArg)
dep -> {
final DAO dao = getDaoForEntityClass(dep.getEntity());
dao.delete(dao.findByField(dep.getField(), thing.getUuid()));
}
);
}



Ładowanie…
Anuluj
Zapisz