From 9268890ab34f27e5b2d4e5783415f909b474cd4c Mon Sep 17 00:00:00 2001 From: o2sword <171715986@qq.com> Date: Thu, 10 Sep 2020 11:33:25 +0800 Subject: [PATCH] =?UTF-8?q?distinct=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../file/assemble/control/factory/AttachmentFactory.java | 9 +++++---- .../com/x/file/assemble/control/factory/FileFactory.java | 5 +++-- .../control/jaxrs/file/ActionListReferenceType.java | 7 +++++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/o2server/x_file_assemble_control/src/main/java/com/x/file/assemble/control/factory/AttachmentFactory.java b/o2server/x_file_assemble_control/src/main/java/com/x/file/assemble/control/factory/AttachmentFactory.java index a716ce1da6..c49a22042b 100644 --- a/o2server/x_file_assemble_control/src/main/java/com/x/file/assemble/control/factory/AttachmentFactory.java +++ b/o2server/x_file_assemble_control/src/main/java/com/x/file/assemble/control/factory/AttachmentFactory.java @@ -1,6 +1,7 @@ package com.x.file.assemble.control.factory; import java.util.List; +import java.util.stream.Collectors; import javax.persistence.EntityManager; import javax.persistence.criteria.CriteriaBuilder; @@ -46,8 +47,8 @@ public class AttachmentFactory extends AbstractFactory { CriteriaQuery cq = cb.createQuery(String.class); Root root = cq.from(Attachment.class); Predicate p = cb.isMember(person, root.get(Attachment_.shareList)); - cq.distinct(true).select(root.get(Attachment_.person)).where(p); - return em.createQuery(cq).getResultList(); + cq.select(root.get(Attachment_.person)).where(p); + return em.createQuery(cq).getResultList().stream().distinct().collect(Collectors.toList()); } public List listPersonWithEditor(String person) throws Exception { @@ -56,8 +57,8 @@ public class AttachmentFactory extends AbstractFactory { CriteriaQuery cq = cb.createQuery(String.class); Root root = cq.from(Attachment.class); Predicate p = cb.isMember(person, root.get(Attachment_.editorList)); - cq.distinct(true).select(root.get(Attachment_.person)).where(p); - return em.createQuery(cq).getResultList(); + cq.select(root.get(Attachment_.person)).where(p); + return em.createQuery(cq).getResultList().stream().distinct().collect(Collectors.toList()); } public Long countWithPersonWithShare(String owner, String person) throws Exception { diff --git a/o2server/x_file_assemble_control/src/main/java/com/x/file/assemble/control/factory/FileFactory.java b/o2server/x_file_assemble_control/src/main/java/com/x/file/assemble/control/factory/FileFactory.java index f566bbe224..a192a7f006 100644 --- a/o2server/x_file_assemble_control/src/main/java/com/x/file/assemble/control/factory/FileFactory.java +++ b/o2server/x_file_assemble_control/src/main/java/com/x/file/assemble/control/factory/FileFactory.java @@ -1,6 +1,7 @@ package com.x.file.assemble.control.factory; import java.util.List; +import java.util.stream.Collectors; import javax.persistence.EntityManager; import javax.persistence.criteria.CriteriaBuilder; @@ -28,7 +29,7 @@ public class FileFactory extends AbstractFactory { Root root = cq.from(File.class); Predicate p = cb.equal(root.get(File_.reference), reference); p = cb.and(p, cb.equal(root.get(File_.referenceType), referenceType)); - cq.select(root.get(File_.id)).where(p).distinct(true); - return em.createQuery(cq).getResultList(); + cq.select(root.get(File_.id)).where(p); + return em.createQuery(cq).getResultList().stream().distinct().collect(Collectors.toList()); } } \ No newline at end of file diff --git a/o2server/x_file_assemble_control/src/main/java/com/x/file/assemble/control/jaxrs/file/ActionListReferenceType.java b/o2server/x_file_assemble_control/src/main/java/com/x/file/assemble/control/jaxrs/file/ActionListReferenceType.java index 2561df3379..d6cc573516 100644 --- a/o2server/x_file_assemble_control/src/main/java/com/x/file/assemble/control/jaxrs/file/ActionListReferenceType.java +++ b/o2server/x_file_assemble_control/src/main/java/com/x/file/assemble/control/jaxrs/file/ActionListReferenceType.java @@ -2,6 +2,7 @@ package com.x.file.assemble.control.jaxrs.file; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import javax.persistence.EntityManager; import javax.persistence.criteria.CriteriaBuilder; @@ -9,10 +10,12 @@ import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; +import com.google.gson.GsonBuilder; 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.gson.GsonPropertyObject; +import com.x.base.core.project.gson.XGsonBuilder; import com.x.base.core.project.http.ActionResult; import com.x.base.core.project.http.EffectivePerson; import com.x.file.assemble.control.Business; @@ -45,8 +48,8 @@ class ActionListReferenceType extends BaseAction { CriteriaQuery cq = cb.createQuery(ReferenceType.class); Root root = cq.from(File.class); Predicate p = cb.equal(root.get(File_.person), effectivePerson.getDistinguishedName()); - cq.select(root.get(File_.referenceType)).where(p).distinct(true); - return em.createQuery(cq).getResultList(); + cq.select(root.get(File_.referenceType)).where(p); + return em.createQuery(cq).getResultList().stream().distinct().collect(Collectors.toList()); } private Long countWithPersonWithReferenceType(Business business, EffectivePerson effectivePerson, -- GitLab