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 a716ce1da68874fbae9ac63b004d25b8b015e4f7..c49a22042b2654505db9e2aa004881558170f146 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 f566bbe22439615a0a54204c2fb179e4c422277e..a192a7f006c6da223fa7169a897f237eaa2f6d7a 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 2561df33797125395795d02a417a0f1754e587c7..d6cc57351677785800d97a6361aa0bfa9a88ee84 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,