diff --git a/o2server/x_base_core_project/src/main/java/com/x/base/core/container/EntityManagerContainer.java b/o2server/x_base_core_project/src/main/java/com/x/base/core/container/EntityManagerContainer.java index 090a263a38e77e2f33501ba5cc6e8a4a2a3b6923..b5350547762cbcb8744371cf9399a7565b263ad1 100644 --- a/o2server/x_base_core_project/src/main/java/com/x/base/core/container/EntityManagerContainer.java +++ b/o2server/x_base_core_project/src/main/java/com/x/base/core/container/EntityManagerContainer.java @@ -871,8 +871,18 @@ public class EntityManagerContainer extends EntityManagerContainerBasic { Root root = cq.from(cls); cq.select(root.get(JpaObject.id_FIELDNAME)); List os = em.createQuery(cq).getResultList(); - List list = new ArrayList<>(os); - return list; + return new ArrayList<>(os); + } + + /* 仅在单一数据库可用 */ + public List ids(Class cls, Predicate predicate) throws Exception { + EntityManager em = this.get(cls); + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(String.class); + Root root = cq.from(cls); + cq.select(root.get(JpaObject.id_FIELDNAME)).where(predicate); + List os = em.createQuery(cq).getResultList(); + return new ArrayList<>(os); } public List idsEqual(Class cls, String attribute, Object value) throws Exception { @@ -882,8 +892,7 @@ public class EntityManagerContainer extends EntityManagerContainerBasic { Root root = cq.from(cls); cq.select(root.get(JpaObject.id_FIELDNAME)).where(cb.equal(root.get(attribute), value)); List os = em.createQuery(cq).getResultList(); - List list = new ArrayList<>(os); - return list; + return new ArrayList<>(os); } public List idsEqualAndEqual(Class cls, String attribute, Object value, @@ -896,8 +905,7 @@ public class EntityManagerContainer extends EntityManagerContainerBasic { p = cb.and(p, cb.equal(root.get(otherAttribute), otherValue)); cq.select(root.get(JpaObject.id_FIELDNAME)).where(p); List os = em.createQuery(cq).getResultList(); - List list = new ArrayList<>(os); - return list; + return new ArrayList<>(os); } public List idsEqualAndEqualAndEqual(Class cls, String attribute, Object value, @@ -928,8 +936,7 @@ public class EntityManagerContainer extends EntityManagerContainerBasic { p = cb.and(p, cb.notEqual(root.get(fourthAttribute), fourthValue)); cq.select(root.get(JpaObject.id_FIELDNAME)).where(p); List os = em.createQuery(cq).getResultList(); - List list = new ArrayList<>(os); - return list; + return new ArrayList<>(os); } public List idsEqualAndNotEqual(Class cls, String equalAttribute, @@ -942,8 +949,7 @@ public class EntityManagerContainer extends EntityManagerContainerBasic { p = cb.and(p, cb.notEqual(root.get(notEqualAttribute), notEqualValue)); cq.select(root.get(JpaObject.id_FIELDNAME)).where(p); List os = em.createQuery(cq).getResultList(); - List list = new ArrayList<>(os); - return list; + return new ArrayList<>(os); } public List idsNotEqual(Class cls, String attribute, Object value) @@ -954,8 +960,7 @@ public class EntityManagerContainer extends EntityManagerContainerBasic { Root root = cq.from(cls); cq.select(root.get(JpaObject.id_FIELDNAME)).where(cb.notEqual(root.get(attribute), value)); List os = em.createQuery(cq).getResultList(); - List list = new ArrayList<>(os); - return list; + return new ArrayList<>(os); } public List idsIn(Class cls, String attribute, diff --git a/o2server/x_processplatform_assemble_designer/src/main/java/com/x/processplatform/assemble/designer/jaxrs/application/ActionListSummaryWithApplicationCategory.java b/o2server/x_processplatform_assemble_designer/src/main/java/com/x/processplatform/assemble/designer/jaxrs/application/ActionListSummaryWithApplicationCategory.java index 1d8d5dd9170ee2248cdcadab9006e61b5ffdba4b..2449bd1fd6fdf90ad1b250121f2f8814b5ad1041 100644 --- a/o2server/x_processplatform_assemble_designer/src/main/java/com/x/processplatform/assemble/designer/jaxrs/application/ActionListSummaryWithApplicationCategory.java +++ b/o2server/x_processplatform_assemble_designer/src/main/java/com/x/processplatform/assemble/designer/jaxrs/application/ActionListSummaryWithApplicationCategory.java @@ -36,8 +36,8 @@ class ActionListSummaryWithApplicationCategory extends BaseAction { List os = this.list(business, effectivePerson, applicationCategory); for (Application o : os) { Wo wo = Wo.copier.copy(o); - wo.setProcessList(business.process().sort(WoProcess.copier.copy(this.listProcess(business, o)))); - wo.setFormList(business.form().sort(WoForm.copier.copy(this.listForm(business, o)))); + wo.setProcessList(business.process().sort(this.listProcess(business, o))); + wo.setFormList(business.form().sort(this.listForm(business, o))); wos.add(wo); } wos = business.application().sort(wos); @@ -112,25 +112,25 @@ class ActionListSummaryWithApplicationCategory extends BaseAction { return em.createQuery(cq).getResultList(); } - private List listProcess(Business business, Application application) throws Exception { + private List listProcess(Business business, Application application) throws Exception { EntityManager em = business.entityManagerContainer().get(Process.class); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(Process.class); Root root = cq.from(Process.class); Predicate p = cb.equal(root.get(Process_.application), application.getId()); - p = cb.and(p, cb.or(cb.isTrue(root.get(Process_.editionEnable)), - cb.isNull(root.get(Process_.editionEnable)))); - cq.select(root).where(p); - return em.createQuery(cq).getResultList(); + p = cb.and(p, cb.or(cb.isTrue(root.get(Process_.editionEnable)), cb.isNull(root.get(Process_.editionEnable)))); + return business.entityManagerContainer().fetch(Process.class, WoProcess.copier, p); } - private List
listForm(Business business, Application application) throws Exception { - EntityManager em = business.entityManagerContainer().get(Form.class); - CriteriaBuilder cb = em.getCriteriaBuilder(); - CriteriaQuery cq = cb.createQuery(Form.class); - Root root = cq.from(Form.class); - Predicate p = cb.equal(root.get(Form_.application), application.getId()); - cq.select(root).where(p); - return em.createQuery(cq).getResultList(); + private List listForm(Business business, Application application) throws Exception { +// EntityManager em = business.entityManagerContainer().get(Form.class); +// CriteriaBuilder cb = em.getCriteriaBuilder(); +// CriteriaQuery cq = cb.createQuery(Form.class); +// Root root = cq.from(Form.class); +// Predicate p = cb.equal(root.get(Form_.application), application.getId()); +// cq.select(root).where(p); +// return em.createQuery(cq).getResultList(); + return business.entityManagerContainer().fetchEqual(Form.class, WoForm.copier, Form.application_FIELDNAME, + application.getId()); } } \ No newline at end of file diff --git a/o2server/x_processplatform_assemble_designer/src/main/java/com/x/processplatform/assemble/designer/jaxrs/process/ActionExecuteProjection.java b/o2server/x_processplatform_assemble_designer/src/main/java/com/x/processplatform/assemble/designer/jaxrs/process/ActionExecuteProjection.java index 379b973dd2b2b34fb59bef71551c54ee3378bdaf..e8f45343d9229b66efed22a630bd1e769b6fb5d8 100644 --- a/o2server/x_processplatform_assemble_designer/src/main/java/com/x/processplatform/assemble/designer/jaxrs/process/ActionExecuteProjection.java +++ b/o2server/x_processplatform_assemble_designer/src/main/java/com/x/processplatform/assemble/designer/jaxrs/process/ActionExecuteProjection.java @@ -1,10 +1,9 @@ package com.x.processplatform.assemble.designer.jaxrs.process; -import org.apache.commons.lang3.StringUtils; - import com.google.gson.JsonElement; import com.x.base.core.container.EntityManagerContainer; import com.x.base.core.container.factory.EntityManagerContainerFactory; +import com.x.base.core.project.annotation.FieldDescribe; import com.x.base.core.project.exception.ExceptionAccessDenied; import com.x.base.core.project.exception.ExceptionEntityNotExist; import com.x.base.core.project.gson.GsonPropertyObject; @@ -52,10 +51,25 @@ class ActionExecuteProjection extends BaseAction { public static class Wi extends GsonPropertyObject { + private static final long serialVersionUID = 8751222971648353980L; + + @FieldDescribe("无效字段") + private String dummy; + + public String getDummy() { + return dummy; + } + + public void setDummy(String dummy) { + this.dummy = dummy; + } + } public static class Wo extends WrapBoolean { + private static final long serialVersionUID = 5417378686087580564L; + } } \ No newline at end of file