提交 9268890a 编写于 作者: O o2sword

distinct问题修复

上级 ec12c1f0
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<String> cq = cb.createQuery(String.class);
Root<Attachment> 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<String> listPersonWithEditor(String person) throws Exception {
......@@ -56,8 +57,8 @@ public class AttachmentFactory extends AbstractFactory {
CriteriaQuery<String> cq = cb.createQuery(String.class);
Root<Attachment> 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 {
......
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<File> 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
......@@ -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<ReferenceType> cq = cb.createQuery(ReferenceType.class);
Root<File> 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,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册