From 30f338356f15b0aab4932483732bbe6ad4ec86c5 Mon Sep 17 00:00:00 2001 From: o2sword <171715986@qq.com> Date: Thu, 22 Oct 2020 17:58:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dquery=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=97=B6=E6=9C=AA=E5=88=A0=E9=99=A4table=E5=92=8Cstatement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/jaxrs/query/ActionDelete.java | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/o2server/x_query_assemble_designer/src/main/java/com/x/query/assemble/designer/jaxrs/query/ActionDelete.java b/o2server/x_query_assemble_designer/src/main/java/com/x/query/assemble/designer/jaxrs/query/ActionDelete.java index 1b5eac6138..484edc6061 100644 --- a/o2server/x_query_assemble_designer/src/main/java/com/x/query/assemble/designer/jaxrs/query/ActionDelete.java +++ b/o2server/x_query_assemble_designer/src/main/java/com/x/query/assemble/designer/jaxrs/query/ActionDelete.java @@ -25,13 +25,17 @@ import com.x.query.core.entity.Stat; import com.x.query.core.entity.Stat_; import com.x.query.core.entity.View; import com.x.query.core.entity.View_; +import com.x.query.core.entity.schema.Statement; +import com.x.query.core.entity.schema.Statement_; +import com.x.query.core.entity.schema.Table; +import com.x.query.core.entity.schema.Table_; class ActionDelete extends BaseAction { private static Logger logger = LoggerFactory.getLogger(ActionDelete.class); ActionResult execute(EffectivePerson effectivePerson, String flag) throws Exception { - logger.debug(effectivePerson, "flag:{}.", flag); + logger.print( "{} delete query flag:{}.",effectivePerson.getDistinguishedName(), flag); try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { ActionResult result = new ActionResult<>(); Business business = new Business(emc); @@ -58,6 +62,16 @@ class ActionDelete extends BaseAction { emc.remove(_o, CheckRemoveType.all); } emc.commit(); + emc.beginTransaction(Table.class); + for (Table _o : this.listTable(business, query)) { + emc.remove(_o, CheckRemoveType.all); + } + emc.commit(); + emc.beginTransaction(Statement.class); + for (Statement _o : this.listStatement(business, query)) { + emc.remove(_o, CheckRemoveType.all); + } + emc.commit(); emc.beginTransaction(Query.class); emc.remove(query, CheckRemoveType.all); emc.commit(); @@ -65,6 +79,8 @@ class ActionDelete extends BaseAction { CacheManager.notify(Stat.class); CacheManager.notify(Reveal.class); CacheManager.notify(Query.class); + CacheManager.notify(Table.class); + CacheManager.notify(Statement.class); Wo wo = new Wo(); wo.setId(query.getId()); result.setData(wo); @@ -102,6 +118,26 @@ class ActionDelete extends BaseAction { return os; } + private List listTable(Business business, Query query) throws Exception { + EntityManager em = business.entityManagerContainer().get(Table.class); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery
cq = cb.createQuery(Table.class); + Root
root = cq.from(Table.class); + Predicate p = cb.equal(root.get(Table_.query), query.getId()); + List
os = em.createQuery(cq.select(root).where(p)).getResultList(); + return os; + } + + private List listStatement(Business business, Query query) throws Exception { + EntityManager em = business.entityManagerContainer().get(Table.class); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(Statement.class); + Root root = cq.from(Statement.class); + Predicate p = cb.equal(root.get(Statement_.query), query.getId()); + List os = em.createQuery(cq.select(root).where(p)).getResultList(); + return os; + } + public static class Wo extends WoId { } } -- GitLab