Переглянути джерело

add bulkDelete

tags/2.0.1
Jonathan Cobb 4 роки тому
джерело
коміт
f046a2b426
2 змінених файлів з 13 додано та 1 видалено
  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 Переглянути файл

@@ -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)
@Override public E findByUniqueField(String field, Object value) {
return uniqueResult(value == null ? isNull(field) : eq(field, value));


+ 6
- 1
wizard-server/src/main/java/org/cobbzilla/wizard/server/config/PgRestServerConfiguration.java Переглянути файл

@@ -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.AbstractCRUDDAO;
import org.cobbzilla.wizard.dao.DAO;
import org.cobbzilla.wizard.model.Identifiable;
import org.cobbzilla.wizard.model.entityconfig.EntityFieldReference;
@@ -343,7 +344,11 @@ public class PgRestServerConfiguration extends RestServerConfiguration implement
dependencyRefs(thing.getClass()).forEach(
dep -> {
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()));
}
}
);
}


Завантаження…
Відмінити
Зберегти