提交 dc3fd1db 编写于 作者: O o2null

修复applciationCategory显示慢的bug

上级 a13a84aa
......@@ -871,8 +871,18 @@ public class EntityManagerContainer extends EntityManagerContainerBasic {
Root<T> root = cq.from(cls);
cq.select(root.get(JpaObject.id_FIELDNAME));
List<String> os = em.createQuery(cq).getResultList();
List<String> list = new ArrayList<>(os);
return list;
return new ArrayList<>(os);
}
/* 仅在单一数据库可用 */
public <T extends JpaObject> List<String> ids(Class<T> cls, Predicate predicate) throws Exception {
EntityManager em = this.get(cls);
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<String> cq = cb.createQuery(String.class);
Root<T> root = cq.from(cls);
cq.select(root.get(JpaObject.id_FIELDNAME)).where(predicate);
List<String> os = em.createQuery(cq).getResultList();
return new ArrayList<>(os);
}
public <T extends JpaObject> List<String> idsEqual(Class<T> cls, String attribute, Object value) throws Exception {
......@@ -882,8 +892,7 @@ public class EntityManagerContainer extends EntityManagerContainerBasic {
Root<T> root = cq.from(cls);
cq.select(root.get(JpaObject.id_FIELDNAME)).where(cb.equal(root.get(attribute), value));
List<String> os = em.createQuery(cq).getResultList();
List<String> list = new ArrayList<>(os);
return list;
return new ArrayList<>(os);
}
public <T extends JpaObject> List<String> idsEqualAndEqual(Class<T> 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<String> os = em.createQuery(cq).getResultList();
List<String> list = new ArrayList<>(os);
return list;
return new ArrayList<>(os);
}
public <T extends JpaObject> List<String> idsEqualAndEqualAndEqual(Class<T> 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<String> os = em.createQuery(cq).getResultList();
List<String> list = new ArrayList<>(os);
return list;
return new ArrayList<>(os);
}
public <T extends JpaObject> List<String> idsEqualAndNotEqual(Class<T> 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<String> os = em.createQuery(cq).getResultList();
List<String> list = new ArrayList<>(os);
return list;
return new ArrayList<>(os);
}
public <T extends JpaObject> List<String> idsNotEqual(Class<T> cls, String attribute, Object value)
......@@ -954,8 +960,7 @@ public class EntityManagerContainer extends EntityManagerContainerBasic {
Root<T> root = cq.from(cls);
cq.select(root.get(JpaObject.id_FIELDNAME)).where(cb.notEqual(root.get(attribute), value));
List<String> os = em.createQuery(cq).getResultList();
List<String> list = new ArrayList<>(os);
return list;
return new ArrayList<>(os);
}
public <T extends JpaObject, W extends Object> List<String> idsIn(Class<T> cls, String attribute,
......
......@@ -36,8 +36,8 @@ class ActionListSummaryWithApplicationCategory extends BaseAction {
List<Application> 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<Process> listProcess(Business business, Application application) throws Exception {
private List<WoProcess> listProcess(Business business, Application application) throws Exception {
EntityManager em = business.entityManagerContainer().get(Process.class);
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Process> cq = cb.createQuery(Process.class);
Root<Process> 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<Form> listForm(Business business, Application application) throws Exception {
EntityManager em = business.entityManagerContainer().get(Form.class);
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Form> cq = cb.createQuery(Form.class);
Root<Form> 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<WoForm> listForm(Business business, Application application) throws Exception {
// EntityManager em = business.entityManagerContainer().get(Form.class);
// CriteriaBuilder cb = em.getCriteriaBuilder();
// CriteriaQuery<Form> cq = cb.createQuery(Form.class);
// Root<Form> 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
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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册