Ver a proveniência

add bulkDelete

tags/2.0.1
Jonathan Cobb há 4 anos
ascendente
cometimento
f046a2b426
2 ficheiros alterados com 13 adições e 1 eliminações
  1. +7
    -0
      wizard-server/src/main/java/org/cobbzilla/wizard/dao/AbstractCRUDDAO.java
  2. +6
    -1
      wizard-server/src/main/java/org/cobbzilla/wizard/server/config/PgRestServerConfiguration.java

+ 7
- 0
wizard-server/src/main/java/org/cobbzilla/wizard/dao/AbstractCRUDDAO.java Ver ficheiro

@@ -246,6 +246,13 @@ public abstract class AbstractCRUDDAO<E extends Identifiable>
} }
} }


public void bulkDelete(String field, String value) {
getHibernateTemplate().getSessionFactory().openStatelessSession()
.createQuery("DELETE FROM "+getEntityClass().getSimpleName()+" WHERE "+field+" = :"+field)
.setString(field, value)
.executeUpdate();
}

@Transactional(readOnly=true) @Transactional(readOnly=true)
@Override public E findByUniqueField(String field, Object value) { @Override public E findByUniqueField(String field, Object value) {
return uniqueResult(value == null ? isNull(field) : eq(field, value)); return uniqueResult(value == null ? isNull(field) : eq(field, value));


+ 6
- 1
wizard-server/src/main/java/org/cobbzilla/wizard/server/config/PgRestServerConfiguration.java Ver ficheiro

@@ -15,6 +15,7 @@ import org.cobbzilla.util.jdbc.UncheckedSqlException;
import org.cobbzilla.util.string.StringUtil; import org.cobbzilla.util.string.StringUtil;
import org.cobbzilla.util.system.Command; import org.cobbzilla.util.system.Command;
import org.cobbzilla.util.system.CommandResult; import org.cobbzilla.util.system.CommandResult;
import org.cobbzilla.wizard.dao.AbstractCRUDDAO;
import org.cobbzilla.wizard.dao.DAO; import org.cobbzilla.wizard.dao.DAO;
import org.cobbzilla.wizard.model.Identifiable; import org.cobbzilla.wizard.model.Identifiable;
import org.cobbzilla.wizard.model.entityconfig.EntityFieldReference; import org.cobbzilla.wizard.model.entityconfig.EntityFieldReference;
@@ -343,7 +344,11 @@ public class PgRestServerConfiguration extends RestServerConfiguration implement
dependencyRefs(thing.getClass()).forEach( dependencyRefs(thing.getClass()).forEach(
dep -> { dep -> {
final DAO dao = getDaoForEntityClass(dep.getEntity()); final DAO dao = getDaoForEntityClass(dep.getEntity());
dao.delete(dao.findByField(dep.getField(), thing.getUuid()));
if (dao instanceof AbstractCRUDDAO) {
((AbstractCRUDDAO) dao).bulkDelete(dep.getField(), thing.getUuid());
} else {
dao.delete(dao.findByField(dep.getField(), thing.getUuid()));
}
} }
); );
} }


Carregando…
Cancelar
Guardar