Răsfoiți Sursa

distinct问题修复

o2sword 5 ani în urmă
părinte
comite
d289ff6ac2
91 a modificat fișierele cu 207 adăugiri și 168 ștergeri
  1. 4 3
      o2server/x_organization_assemble_authentication/src/main/java/com/x/organization/assemble/authentication/factory/PersonFactory.java
  2. 1 1
      o2server/x_organization_assemble_authentication/src/main/java/com/x/organization/assemble/authentication/jaxrs/zhengwudingding/ActionLogin.java
  3. 1 1
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/GroupFactory.java
  4. 1 1
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/IdentityFactory.java
  5. 1 11
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/PermissionSettingFactory.java
  6. 1 1
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/PersonAttributeFactory.java
  7. 4 3
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/PersonCardFactory.java
  8. 1 1
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/PersonFactory.java
  9. 1 1
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/RoleFactory.java
  10. 1 1
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/UnitAttributeFactory.java
  11. 1 1
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/UnitDutyFactory.java
  12. 2 2
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/UnitFactory.java
  13. 2 2
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/export/ActionZhengwuDingdingPerson.java
  14. 1 16
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionDelete.java
  15. 5 4
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/person/ActionDelete.java
  16. 3 1
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/role/ActionListWithGroup.java
  17. 2 2
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/role/ActionListWithPerson.java
  18. 2 1
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unit/ActionGet.java
  19. 2 1
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unit/ActionGetWithIdentityWithLevel.java
  20. 2 1
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unit/ActionGetWithIdentityWithType.java
  21. 4 2
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unit/ActionListWithUnitWithType.java
  22. 2 2
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unitduty/ActionDistinctName.java
  23. 2 2
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unitduty/ActionDistinctNameLike.java
  24. 2 1
      o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unitduty/ActionGet.java
  25. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/GroupFactory.java
  26. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/IdentityFactory.java
  27. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/PersonAttributeFactory.java
  28. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/PersonFactory.java
  29. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/RoleFactory.java
  30. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/UnitAttributeFactory.java
  31. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/UnitDutyFactory.java
  32. 2 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/UnitFactory.java
  33. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/empower/ActionListWithIdentityObject.java
  34. 3 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/group/ActionHasRole.java
  35. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListMajorWithPerson.java
  36. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListMajorWithPersonObject.java
  37. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithPerson.java
  38. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithPersonObject.java
  39. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithPersonWithUnit.java
  40. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithPersonWithUnitObject.java
  41. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithUnitSubDirect.java
  42. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithUnitSubDirectObject.java
  43. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithUnitSubNested.java
  44. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithUnitSubNestedObject.java
  45. 3 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionHasRole.java
  46. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithPersonAttribute.java
  47. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithPersonAttributeObject.java
  48. 2 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithRole.java
  49. 3 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithRoleObject.java
  50. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubDirect.java
  51. 5 3
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubDirectLike.java
  52. 5 3
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubDirectLikeObject.java
  53. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubDirectObject.java
  54. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubNested.java
  55. 5 3
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubNestedLike.java
  56. 5 3
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubNestedLikeObject.java
  57. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubNestedObject.java
  58. 2 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/personattribute/ActionListNameWithPerson.java
  59. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/personattribute/ActionListWithPersonObject.java
  60. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/personattribute/BaseAction.java
  61. 2 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/role/ActionListWithPerson.java
  62. 2 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/role/ActionListWithPersonObject.java
  63. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithIdentity.java
  64. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithIdentityObject.java
  65. 3 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithIdentitySupNested.java
  66. 2 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithIdentitySupNestedObject.java
  67. 2 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithLevel.java
  68. 3 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithLevelObject.java
  69. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithPerson.java
  70. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithPersonObject.java
  71. 3 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithPersonSupNested.java
  72. 2 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithPersonSupNestedObject.java
  73. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithUnitAttribute.java
  74. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithUnitAttributeObject.java
  75. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithUnitDuty.java
  76. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithUnitDutyObject.java
  77. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitattribute/ActionListNameWithUnit.java
  78. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitattribute/ActionListWithUnitObject.java
  79. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitattribute/BaseAction.java
  80. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitduty/ActionListNameWithIdentity.java
  81. 3 2
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitduty/ActionListNameWithUnit.java
  82. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitduty/ActionListWithUnitObject.java
  83. 1 1
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitduty/BaseAction.java
  84. 1 1
      o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/GroupFactory.java
  85. 1 1
      o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/IdentityFactory.java
  86. 1 1
      o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/PersonAttributeFactory.java
  87. 2 2
      o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/PersonFactory.java
  88. 1 1
      o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/RoleFactory.java
  89. 1 1
      o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/UnitAttributeFactory.java
  90. 1 1
      o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/UnitDutyFactory.java
  91. 2 2
      o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/UnitFactory.java

+ 4 - 3
o2server/x_organization_assemble_authentication/src/main/java/com/x/organization/assemble/authentication/factory/PersonFactory.java

@@ -4,6 +4,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
 import java.util.regex.Matcher;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -68,7 +69,7 @@ public class PersonFactory extends AbstractFactory {
 				CriteriaQuery<Person> cq = cb.createQuery(Person.class);
 				Root<Person> root = cq.from(Person.class);
 				Predicate p = cb.equal(root.get(Person_.name), name);
-				List<Person> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Person> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);
@@ -115,8 +116,8 @@ public class PersonFactory extends AbstractFactory {
 		p = cb.or(p, cb.equal(root.get(Person_.open3Id), credential));
 		p = cb.or(p, cb.equal(root.get(Person_.open4Id), credential));
 		p = cb.or(p, cb.equal(root.get(Person_.open5Id), credential));
-		cq.select(root.get(Person_.id));
-		List<String> list = em.createQuery(cq.where(p).distinct(true)).getResultList();
+		cq.select(root.get(Person_.id)).where(p);
+		List<String> list = em.createQuery(cq).getResultList().stream().distinct().collect(Collectors.toList());
 		if (list.size() == 1) {
 			return list.get(0);
 		}else if(list.size() > 1){

+ 1 - 1
o2server/x_organization_assemble_authentication/src/main/java/com/x/organization/assemble/authentication/jaxrs/zhengwudingding/ActionLogin.java

@@ -183,7 +183,7 @@ class ActionLogin extends BaseAction {
 		Root<Person> root = cq.from(Person.class);
 		Predicate p = cb.equal(root.get(Person_.zhengwuDingdingId), userId);
 		cq.select(root).where(p);
-		List<Person> list = em.createQuery(cq.distinct(true)).getResultList();
+		List<Person> list = em.createQuery(cq).getResultList();
 		if (list.size() == 1) {
 			return list.get(0);
 		} else {

+ 1 - 1
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/GroupFactory.java

@@ -91,7 +91,7 @@ public class GroupFactory extends AbstractFactory {
 				CriteriaQuery<Group> cq = cb.createQuery(Group.class);
 				Root<Group> root = cq.from(Group.class);
 				Predicate p = cb.equal(root.get(Group_.name), name);
-				List<Group> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Group> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 1 - 1
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/IdentityFactory.java

@@ -69,7 +69,7 @@ public class IdentityFactory extends AbstractFactory {
 				CriteriaQuery<Identity> cq = cb.createQuery(Identity.class);
 				Root<Identity> root = cq.from(Identity.class);
 				Predicate p = cb.equal(root.get(Identity_.name), name);
-				List<Identity> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Identity> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 1 - 11
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/PermissionSettingFactory.java

@@ -83,7 +83,7 @@ public class PermissionSettingFactory extends AbstractFactory {
 				CriteriaQuery<PermissionSetting> cq = cb.createQuery(PermissionSetting.class);
 				Root<PermissionSetting> root = cq.from(PermissionSetting.class);
 				Predicate p = cb.equal(root.get(PermissionSetting_.id), name);
-				List<PermissionSetting> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<PermissionSetting> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);
@@ -100,14 +100,4 @@ public class PermissionSettingFactory extends AbstractFactory {
 		cq.select(root.get(PermissionSetting_.id)).orderBy(cb.asc(root.get(PermissionSetting_.createTime))); 
 		return em.createQuery(cq).getResultList();
 	}
-	/*
-	public List<String> fetchAllGroupTypeByCreator(String distinguishName) throws Exception {
-		EntityManager em = this.entityManagerContainer().get(PermissionSetting.class);
-		CriteriaBuilder cb = em.getCriteriaBuilder();
-		CriteriaQuery<String> cq = cb.createQuery(String.class);
-		Root<PermissionSetting> root = cq.from(PermissionSetting.class);
-		Predicate p = cb.equal(root.get(PermissionSetting_.distinguishedName), distinguishName);
-		cq.select(root.get(PermissionSetting_.groupType)).where(p).distinct(true);
-		return em.createQuery(cq).getResultList();
-	}*/
 }

+ 1 - 1
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/PersonAttributeFactory.java

@@ -68,7 +68,7 @@ public class PersonAttributeFactory extends AbstractFactory {
 				CriteriaQuery<PersonAttribute> cq = cb.createQuery(PersonAttribute.class);
 				Root<PersonAttribute> root = cq.from(PersonAttribute.class);
 				Predicate p = cb.equal(root.get(PersonAttribute_.name), name);
-				List<PersonAttribute> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<PersonAttribute> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 4 - 3
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/PersonCardFactory.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.control.factory;
 import java.util.List;
 import java.util.Optional;
 import java.util.regex.Matcher;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -65,7 +66,7 @@ public class PersonCardFactory extends AbstractFactory {
 				CriteriaQuery<PersonCard> cq = cb.createQuery(PersonCard.class);
 				Root<PersonCard> root = cq.from(PersonCard.class);
 				Predicate p = cb.equal(root.get(PersonCard_.name), name);
-				List<PersonCard> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<PersonCard> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);
@@ -89,7 +90,7 @@ public class PersonCardFactory extends AbstractFactory {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<PersonCard> root = cq.from(PersonCard.class);
 		Predicate p = cb.equal(root.get(PersonCard_.distinguishedName), distinguishName);
-		cq.select(root.get(PersonCard_.groupType)).where(p).distinct(true);
-		return em.createQuery(cq).getResultList();
+		cq.select(root.get(PersonCard_.groupType)).where(p);
+		return em.createQuery(cq).getResultList().stream().distinct().collect(Collectors.toList());
 	}
 }

+ 1 - 1
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/PersonFactory.java

@@ -68,7 +68,7 @@ public class PersonFactory extends AbstractFactory {
 				CriteriaQuery<Person> cq = cb.createQuery(Person.class);
 				Root<Person> root = cq.from(Person.class);
 				Predicate p = cb.equal(root.get(Person_.name), name);
-				List<Person> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Person> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 1 - 1
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/RoleFactory.java

@@ -68,7 +68,7 @@ public class RoleFactory extends AbstractFactory {
 				CriteriaQuery<Role> cq = cb.createQuery(Role.class);
 				Root<Role> root = cq.from(Role.class);
 				Predicate p = cb.equal(root.get(Role_.name), name);
-				List<Role> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Role> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 1 - 1
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/UnitAttributeFactory.java

@@ -68,7 +68,7 @@ public class UnitAttributeFactory extends AbstractFactory {
 				CriteriaQuery<UnitAttribute> cq = cb.createQuery(UnitAttribute.class);
 				Root<UnitAttribute> root = cq.from(UnitAttribute.class);
 				Predicate p = cb.equal(root.get(UnitAttribute_.name), name);
-				List<UnitAttribute> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<UnitAttribute> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 1 - 1
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/UnitDutyFactory.java

@@ -68,7 +68,7 @@ public class UnitDutyFactory extends AbstractFactory {
 				CriteriaQuery<UnitDuty> cq = cb.createQuery(UnitDuty.class);
 				Root<UnitDuty> root = cq.from(UnitDuty.class);
 				Predicate p = cb.equal(root.get(UnitDuty_.name), name);
-				List<UnitDuty> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<UnitDuty> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 2 - 2
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/factory/UnitFactory.java

@@ -67,7 +67,7 @@ public class UnitFactory extends AbstractFactory {
 				CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
 				Root<Unit> root = cq.from(Unit.class);
 				Predicate p = cb.equal(root.get(Unit_.name), name);
-				List<Unit> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Unit> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);
@@ -81,7 +81,7 @@ public class UnitFactory extends AbstractFactory {
 				Root<Unit> root = cq.from(Unit.class);
 				Predicate p = cb.and(cb.equal(root.get(Unit_.name), Objects.toString(ListTools.last(list), "")),
 						cb.equal(root.get(Unit_.level), list.size()));
-				List<Unit> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Unit> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				for (Unit unit : os) {
 					if (StringUtils.equalsIgnoreCase(unit.getLevelName(), flag)) {
 						o = unit;

+ 2 - 2
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/export/ActionZhengwuDingdingPerson.java

@@ -101,7 +101,7 @@ class ActionZhengwuDingdingPerson extends BaseAction {
 		CriteriaQuery<Person> cq = cb.createQuery(Person.class);
 		Root<Person> root = cq.from(Person.class);
 		Predicate p = cb.isNotEmpty(root.get(Person.zhengwuDingdingId_FIELDNAME));
-		List<Person> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Person> os = em.createQuery(cq.select(root).where(p)).getResultList();
 		return os;
 	}
 
@@ -111,7 +111,7 @@ class ActionZhengwuDingdingPerson extends BaseAction {
 		CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
 		Root<Unit> root = cq.from(Unit.class);
 		Predicate p = cb.isNotEmpty(root.get(Unit.zhengwuDingdingId_FIELDNAME));
-		List<Unit> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Unit> os = em.createQuery(cq.select(root).where(p)).getResultList();
 		os = os.stream().sorted(Comparator.comparing(Unit::getOrderNumber, Comparator.nullsLast(Integer::compareTo)))
 				.collect(Collectors.toList());
 		return os;

+ 1 - 16
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/identity/ActionDelete.java

@@ -93,28 +93,13 @@ public class ActionDelete extends BaseAction {
 
 	}
 
-	// private void removeMemberOfJunior(Business business, Identity identity)
-	// throws Exception {
-	// EntityManager em = business.entityManagerContainer().get(Identity.class);
-	// CriteriaBuilder cb = em.getCriteriaBuilder();
-	// CriteriaQuery<Identity> cq = cb.createQuery(Identity.class);
-	// Root<Identity> root = cq.from(Identity.class);
-	// Predicate p = cb.isMember(identity.getId(),
-	// root.get(Identity_.juniorList));
-	// List<Identity> os =
-	// em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
-	// for (Identity o : os) {
-	// o.getJuniorList().remove(identity.getId());
-	// }
-	// }
-
 	private void removeMemberOfUnitDuty(Business business, Identity identity) throws Exception {
 		EntityManager em = business.entityManagerContainer().get(UnitDuty.class);
 		CriteriaBuilder cb = em.getCriteriaBuilder();
 		CriteriaQuery<UnitDuty> cq = cb.createQuery(UnitDuty.class);
 		Root<UnitDuty> root = cq.from(UnitDuty.class);
 		Predicate p = cb.isMember(identity.getId(), root.get(UnitDuty_.identityList));
-		List<UnitDuty> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<UnitDuty> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		for (UnitDuty o : os) {
 			o.getIdentityList().remove(identity.getId());
 		}

+ 5 - 4
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/person/ActionDelete.java

@@ -1,6 +1,7 @@
 package com.x.organization.assemble.control.jaxrs.person;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -136,7 +137,7 @@ class ActionDelete extends BaseAction {
 		CriteriaQuery<UnitDuty> cq = cb.createQuery(UnitDuty.class);
 		Root<UnitDuty> root = cq.from(UnitDuty.class);
 		Predicate p = root.get(UnitDuty_.identityList).in(ids);
-		List<UnitDuty> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<UnitDuty> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		for (UnitDuty o : os) {
 			o.getIdentityList().removeAll(ids);
 		}
@@ -149,7 +150,7 @@ class ActionDelete extends BaseAction {
 		Root<Unit> root = cq.from(Unit.class);
 		Predicate p = cb.isMember(person.getId(), root.get(Unit_.controllerList));
 		p = cb.or(cb.isMember(person.getId(), root.get(Unit_.inheritedControllerList)));
-		List<Unit> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Unit> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		for (Unit o : os) {
 			o.getControllerList().remove(person.getId());
 			o.getInheritedControllerList().remove(person.getId());
@@ -162,7 +163,7 @@ class ActionDelete extends BaseAction {
 		CriteriaQuery<Person> cq = cb.createQuery(Person.class);
 		Root<Person> root = cq.from(Person.class);
 		Predicate p = cb.isMember(person.getId(), root.get(Person_.controllerList));
-		List<Person> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Person> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		for (Person o : os) {
 			o.getControllerList().remove(person.getId());
 		}
@@ -174,7 +175,7 @@ class ActionDelete extends BaseAction {
 		CriteriaQuery<Person> cq = cb.createQuery(Person.class);
 		Root<Person> root = cq.from(Person.class);
 		Predicate p = cb.equal(root.get(Person_.superior), person.getId());
-		List<Person> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Person> os = em.createQuery(cq.select(root).where(p)).getResultList();
 		for (Person o : os) {
 			o.setSuperior("");
 		}

+ 3 - 1
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/role/ActionListWithGroup.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.control.jaxrs.role;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -17,6 +18,7 @@ import com.x.base.core.project.bean.WrapCopier;
 import com.x.base.core.project.bean.WrapCopierFactory;
 import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.EffectivePerson;
+import com.x.base.core.project.tools.ListTools;
 import com.x.organization.assemble.control.Business;
 import com.x.organization.core.entity.Group;
 import com.x.organization.core.entity.Role;
@@ -69,7 +71,7 @@ class ActionListWithGroup extends BaseAction {
 		CriteriaQuery<Role> cq = cb.createQuery(Role.class);
 		Root<Role> root = cq.from(Role.class);
 		Predicate p = root.get(Role_.groupList).in(groups);
-		List<Role> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Role> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		List<Wo> wos = Wo.copier.copy(os);
 		wos = business.role().sort(wos);
 		return wos;

+ 2 - 2
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/role/ActionListWithPerson.java

@@ -76,7 +76,7 @@ class ActionListWithPerson extends BaseAction {
 		CriteriaQuery<Role> cq = cb.createQuery(Role.class);
 		Root<Role> root = cq.from(Role.class);
 		Predicate p = root.get(Role_.groupList).in(groups);
-		List<Role> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Role> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		return os;
 	}
 
@@ -86,7 +86,7 @@ class ActionListWithPerson extends BaseAction {
 		CriteriaQuery<Role> cq = cb.createQuery(Role.class);
 		Root<Role> root = cq.from(Role.class);
 		Predicate p = cb.isMember(person.getId(), root.get(Role_.personList));
-		List<Role> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Role> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		return os;
 	}
 

+ 2 - 1
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unit/ActionGet.java

@@ -2,6 +2,7 @@ package com.x.organization.assemble.control.jaxrs.unit;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -256,7 +257,7 @@ class ActionGet extends BaseAction {
 		CriteriaQuery<Identity> cq = cb.createQuery(Identity.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.id).in(woUnitDuty.getIdentityList());
-		List<Identity> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Identity> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		List<WoIdentity> wos = WoIdentity.copier.copy(os);
 		for (WoIdentity woIdentity : wos) {
 			this.referencePerson(business, woIdentity);

+ 2 - 1
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unit/ActionGetWithIdentityWithLevel.java

@@ -2,6 +2,7 @@ package com.x.organization.assemble.control.jaxrs.unit;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -222,7 +223,7 @@ class ActionGetWithIdentityWithLevel extends BaseAction {
 		CriteriaQuery<Identity> cq = cb.createQuery(Identity.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.id).in(woUnitDuty.getIdentityList());
-		List<Identity> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Identity> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		List<WoIdentity> wos = WoIdentity.copier.copy(os);
 		for (WoIdentity woIdentity : wos) {
 			this.referencePerson(business, woIdentity);

+ 2 - 1
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unit/ActionGetWithIdentityWithType.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.control.jaxrs.unit;
 import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -225,7 +226,7 @@ class ActionGetWithIdentityWithType extends BaseAction {
 		CriteriaQuery<Identity> cq = cb.createQuery(Identity.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.id).in(woUnitDuty.getIdentityList());
-		List<Identity> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Identity> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		List<WoIdentity> wos = WoIdentity.copier.copy(os);
 		for (WoIdentity woIdentity : wos) {
 			this.referencePerson(business, woIdentity);

+ 4 - 2
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unit/ActionListWithUnitWithType.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.control.jaxrs.unit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -114,7 +115,8 @@ class ActionListWithUnitWithType extends BaseAction {
 				CriteriaQuery<String> cq = cb.createQuery(String.class);
 				Root<Unit> root = cq.from(Unit.class);
 				Predicate p = cb.isMember(wi.getType(), root.get(Unit_.typeList));
-				List<String> os = em.createQuery(cq.select(root.get(Unit_.id)).where(p).distinct(true)).getResultList();
+				List<String> os = em.createQuery(cq.select(root.get(Unit_.id)).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
+
 				List<String> referenceUnitIds = new ArrayList<>(os);
 				for (String str : os) {
 					referenceUnitIds.addAll(business.unit().listSupNested(str));
@@ -155,7 +157,7 @@ class ActionListWithUnitWithType extends BaseAction {
 		Root<Unit> root = cq.from(Unit.class);
 		Predicate p = cb.isMember(wi.getType(), root.get(Unit_.typeList));
 		p = cb.and(p, root.get(Unit_.id).in(expendUnitIds));
-		List<String> os = em.createQuery(cq.select(root.get(Unit_.id)).where(p).distinct(true)).getResultList();
+		List<String> os = em.createQuery(cq.select(root.get(Unit_.id)).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> referenceUnitIds = new ArrayList<String>(os);
 		for (String str : os) {
 			referenceUnitIds.addAll(business.unit().listSupNested(str));

+ 2 - 2
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unitduty/ActionDistinctName.java

@@ -60,8 +60,8 @@ class ActionDistinctName extends BaseAction {
 		CriteriaBuilder cb = em.getCriteriaBuilder();
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<UnitDuty> root = cq.from(UnitDuty.class);
-		cq.select(root.get(UnitDuty_.name)).distinct(true);
-		List<String> list = em.createQuery(cq).getResultList();
+		cq.select(root.get(UnitDuty_.name));
+		List<String> list = em.createQuery(cq).getResultList().stream().distinct().collect(Collectors.toList());
 		list = list.stream().filter(o -> {
 			return StringUtils.isNotEmpty(o);
 		}).sorted().collect(Collectors.toList());

+ 2 - 2
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unitduty/ActionDistinctNameLike.java

@@ -68,8 +68,8 @@ class ActionDistinctNameLike extends BaseAction {
 		Predicate p = cb.like(root.get(UnitDuty_.name), "%" + key + "%", '\\');
 		p = cb.or(p, cb.like(root.get(UnitDuty_.pinyin), key + "%", '\\'));
 		p = cb.or(p, cb.like(root.get(UnitDuty_.pinyinInitial), key + "%", '\\'));
-		cq.select(root.get(UnitDuty_.name)).distinct(true).where(p);
-		List<String> list = em.createQuery(cq).getResultList();
+		cq.select(root.get(UnitDuty_.name)).where(p);
+		List<String> list = em.createQuery(cq).getResultList().stream().distinct().collect(Collectors.toList());
 		list = list.stream().filter(o -> {
 			return StringUtils.isNotEmpty(o);
 		}).sorted().collect(Collectors.toList());

+ 2 - 1
o2server/x_organization_assemble_control/src/main/java/com/x/organization/assemble/control/jaxrs/unitduty/ActionGet.java

@@ -2,6 +2,7 @@ package com.x.organization.assemble.control.jaxrs.unitduty;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -72,7 +73,7 @@ class ActionGet extends BaseAction {
 		CriteriaQuery<Identity> cq = cb.createQuery(Identity.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.id).in(wo.getIdentityList());
-		List<Identity> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Identity> os = em.createQuery(cq.select(root).where(p)).getResultList();
 		List<WoIdentity> wos = WoIdentity.copier.copy(os);
 		for (WoIdentity woIdentity : wos) {
 			this.referencePerson(business, woIdentity);

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/GroupFactory.java

@@ -93,7 +93,7 @@ public class GroupFactory extends AbstractFactory {
 				CriteriaQuery<Group> cq = cb.createQuery(Group.class);
 				Root<Group> root = cq.from(Group.class);
 				Predicate p = cb.equal(root.get(Group_.name), name);
-				List<Group> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Group> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/IdentityFactory.java

@@ -76,7 +76,7 @@ public class IdentityFactory extends AbstractFactory {
 				CriteriaQuery<Identity> cq = cb.createQuery(Identity.class);
 				Root<Identity> root = cq.from(Identity.class);
 				Predicate p = cb.equal(root.get(Identity_.name), name);
-				List<Identity> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Identity> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/PersonAttributeFactory.java

@@ -70,7 +70,7 @@ public class PersonAttributeFactory extends AbstractFactory {
 				CriteriaQuery<PersonAttribute> cq = cb.createQuery(PersonAttribute.class);
 				Root<PersonAttribute> root = cq.from(PersonAttribute.class);
 				Predicate p = cb.equal(root.get(PersonAttribute_.name), name);
-				List<PersonAttribute> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<PersonAttribute> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/PersonFactory.java

@@ -75,7 +75,7 @@ public class PersonFactory extends AbstractFactory {
 				CriteriaQuery<Person> cq = cb.createQuery(Person.class);
 				Root<Person> root = cq.from(Person.class);
 				Predicate p = cb.equal(root.get(Person_.name), name);
-				List<Person> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Person> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);
@@ -169,7 +169,8 @@ public class PersonFactory extends AbstractFactory {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Person> root = cq.from(Person.class);
 		Predicate p = cb.equal(root.get(Person_.superior), person.getId());
-		list = em.createQuery(cq.select(root.get(Person_.id)).where(p).distinct(true)).getResultList();
+		list = em.createQuery(cq.select(root.get(Person_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		return list;
 	}
 

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/RoleFactory.java

@@ -72,7 +72,7 @@ public class RoleFactory extends AbstractFactory {
 				CriteriaQuery<Role> cq = cb.createQuery(Role.class);
 				Root<Role> root = cq.from(Role.class);
 				Predicate p = cb.equal(root.get(Role_.name), name);
-				List<Role> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Role> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/UnitAttributeFactory.java

@@ -70,7 +70,7 @@ public class UnitAttributeFactory extends AbstractFactory {
 				CriteriaQuery<UnitAttribute> cq = cb.createQuery(UnitAttribute.class);
 				Root<UnitAttribute> root = cq.from(UnitAttribute.class);
 				Predicate p = cb.equal(root.get(UnitAttribute_.name), name);
-				List<UnitAttribute> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<UnitAttribute> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/UnitDutyFactory.java

@@ -70,7 +70,7 @@ public class UnitDutyFactory extends AbstractFactory {
 				CriteriaQuery<UnitDuty> cq = cb.createQuery(UnitDuty.class);
 				Root<UnitDuty> root = cq.from(UnitDuty.class);
 				Predicate p = cb.equal(root.get(UnitDuty_.name), name);
-				List<UnitDuty> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<UnitDuty> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 2 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/factory/UnitFactory.java

@@ -76,7 +76,7 @@ public class UnitFactory extends AbstractFactory {
 				CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
 				Root<Unit> root = cq.from(Unit.class);
 				Predicate p = cb.equal(root.get(Unit_.name), name);
-				List<Unit> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Unit> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);
@@ -90,7 +90,7 @@ public class UnitFactory extends AbstractFactory {
 				Root<Unit> root = cq.from(Unit.class);
 				Predicate p = cb.and(cb.equal(root.get(Unit_.name), Objects.toString(ListTools.last(list), "")),
 						cb.equal(root.get(Unit_.level), list.size()));
-				List<Unit> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Unit> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				for (Unit unit : os) {
 					if (StringUtils.equalsIgnoreCase(unit.getLevelName(), flag)) {
 						o = unit;

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/empower/ActionListWithIdentityObject.java

@@ -211,7 +211,7 @@ class ActionListWithIdentityObject extends BaseAction {
 		p = cb.and(p, cb.equal(root.get(Empower_.enable), true));
 		p = cb.and(p, cb.lessThan(root.get(Empower_.startTime), new Date()),
 				cb.greaterThan(root.get(Empower_.completedTime), new Date()));
-		return em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		return em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 	}
 
 }

+ 3 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/group/ActionHasRole.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.group;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -102,7 +103,8 @@ class ActionHasRole extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Role> root = cq.from(Role.class);
 		Predicate p = root.get(Role_.groupList).in(groupIds);
-		List<String> os = em.createQuery(cq.select(root.get(Role_.id)).where(p).distinct(true)).getResultList();
+		List<String> os = em.createQuery(cq.select(root.get(Role_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		boolean value = ListTools.containsAny(os,
 				ListTools.extractProperty(roles, JpaObject.id_FIELDNAME, String.class, true, true));
 		wo.setValue(value);

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListMajorWithPerson.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.identity;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -74,8 +75,8 @@ class ActionListMajorWithPerson extends BaseAction {
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.person).in(personIds);
 		p = cb.and(p, cb.equal(root.get(Identity_.major), true));
-		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p).distinct(true))
-				.getResultList();
+		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> values = business.identity().listIdentityDistinguishedNameSorted(identityIds);
 		Wo wo = new Wo();
 		wo.getIdentityList().addAll(values);

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListMajorWithPersonObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.identity;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -80,8 +81,8 @@ class ActionListMajorWithPersonObject extends BaseAction {
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.person).in(personIds);
 		p = cb.and(p, cb.equal(root.get(Identity_.major), true));
-		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p).distinct(true))
-				.getResultList();
+		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		List<Identity> list = business.identity().pick(identityIds);
 		for (Identity o : list) {
 			if (ListTools.contains(personMajorIds, o.getId())) {

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithPerson.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.identity;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -73,8 +74,8 @@ class ActionListWithPerson extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.person).in(personIds);
-		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p).distinct(true))
-				.getResultList();
+		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> values = business.identity().listIdentityDistinguishedNameSorted(identityIds);
 		Wo wo = new Wo();
 		wo.getIdentityList().addAll(values);

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithPersonObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.identity;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -79,8 +80,8 @@ class ActionListWithPersonObject extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.person).in(personIds);
-		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p).distinct(true))
-				.getResultList();
+		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		List<Identity> list = business.identity().pick(identityIds);
 		for (Identity o : list) {
 			if (ListTools.contains(personMajorIds, o.getId())) {

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithPersonWithUnit.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.identity;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -64,8 +65,8 @@ class ActionListWithPersonWithUnit extends BaseAction {
 			p = cb.or(p, cb.and(cb.equal(root.get(Identity_.unit), o.getUnit()),
 					cb.equal(root.get(Identity_.person), o.getPerson())));
 		}
-		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p).distinct(true))
-				.getResultList();
+		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		identityIds = ListTools.trim(identityIds, true, true);
 		List<String> values = business.identity().listIdentityDistinguishedNameSorted(identityIds);
 		Wo wo = new Wo();

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithPersonWithUnitObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.identity;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -66,8 +67,8 @@ class ActionListWithPersonWithUnitObject extends BaseAction {
 			p = cb.or(cb.and(cb.equal(root.get(Identity_.unit), o.getUnit()),
 					cb.equal(root.get(Identity_.person), o.getPerson())));
 		}
-		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p).distinct(true))
-				.getResultList();
+		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		identityIds = ListTools.trim(identityIds, true, true);
 		List<Identity> list = business.identity().pick(identityIds);
 		for (Identity o : list) {

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithUnitSubDirect.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.identity;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -74,8 +75,8 @@ class ActionListWithUnitSubDirect extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.unit).in(unitIds);
-		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p).distinct(true))
-				.getResultList();
+		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> values = business.identity().listIdentityDistinguishedNameSorted(identityIds);
 		Wo wo = new Wo();
 		wo.getIdentityList().addAll(values);

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithUnitSubDirectObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.identity;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -76,8 +77,8 @@ class ActionListWithUnitSubDirectObject extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.unit).in(unitIds);
-		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p).distinct(true))
-				.getResultList();
+		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		List<Identity> list = business.identity().pick(identityIds);
 		for (Identity o : list) {
 			wos.add(this.convert(business, o, Wo.class));

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithUnitSubNested.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.identity;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -77,8 +78,8 @@ class ActionListWithUnitSubNested extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.unit).in(unitIds);
-		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p).distinct(true))
-				.getResultList();
+		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		identityIds = ListTools.trim(identityIds, true, true);
 		List<String> values = business.identity().listIdentityDistinguishedNameSorted(identityIds);
 		Wo wo = new Wo();

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/identity/ActionListWithUnitSubNestedObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.identity;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -79,8 +80,8 @@ class ActionListWithUnitSubNestedObject extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.unit).in(unitIds);
-		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p).distinct(true))
-				.getResultList();
+		List<String> identityIds = em.createQuery(cq.select(root.get(Identity_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		identityIds = ListTools.trim(identityIds, true, true);
 		List<Identity> list = business.identity().pick(identityIds);
 		for (Identity o : list) {

+ 3 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionHasRole.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.person;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -102,7 +103,8 @@ class ActionHasRole extends BaseAction {
 		Root<Role> root = cq.from(Role.class);
 		Predicate p = cb.isMember(person.getId(), root.get(Role_.personList));
 		p = cb.or(p, root.get(Role_.groupList).in(groupIds));
-		List<String> os = em.createQuery(cq.select(root.get(Role_.id)).where(p).distinct(true)).getResultList();
+		List<String> os = em.createQuery(cq.select(root.get(Role_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		boolean value = ListTools.containsAny(os,
 				ListTools.extractProperty(roles, JpaObject.id_FIELDNAME, String.class, true, true));
 		wo.setValue(value);

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithPersonAttribute.java

@@ -2,6 +2,7 @@ package com.x.organization.assemble.express.jaxrs.person;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -80,8 +81,8 @@ class ActionListWithPersonAttribute extends BaseAction {
 		Root<PersonAttribute> root = cq.from(PersonAttribute.class);
 		Predicate p = cb.equal(root.get(PersonAttribute_.name), wi.getName());
 		p = cb.and(p, cb.isMember(wi.getAttribute(), root.get(PersonAttribute_.attributeList)));
-		List<String> personIds = em.createQuery(cq.select(root.get(PersonAttribute_.person)).where(p).distinct(true))
-				.getResultList();
+		List<String> personIds = em.createQuery(cq.select(root.get(PersonAttribute_.person)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		personIds = ListTools.trim(personIds, true, true);
 		List<String> values = business.person().listPersonDistinguishedNameSorted(personIds);
 		Wo wo = new Wo();

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithPersonAttributeObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.person;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -84,8 +85,8 @@ class ActionListWithPersonAttributeObject extends BaseAction {
 		Root<PersonAttribute> root = cq.from(PersonAttribute.class);
 		Predicate p = cb.equal(root.get(PersonAttribute_.name), wi.getName());
 		p = cb.and(p, cb.isMember(wi.getAttribute(), root.get(PersonAttribute_.attributeList)));
-		List<String> personIds = em.createQuery(cq.select(root.get(PersonAttribute_.person)).where(p).distinct(true))
-				.getResultList();
+		List<String> personIds = em.createQuery(cq.select(root.get(PersonAttribute_.person)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		personIds = ListTools.trim(personIds, true, true);
 		for (Person o : business.person().pick(personIds)) {
 			wos.add(this.convert(business, o, Wo.class));

+ 2 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithRole.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.person;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -90,7 +91,7 @@ class ActionListWithRole extends BaseAction {
 		CriteriaQuery<Group> cq = cb.createQuery(Group.class);
 		Root<Group> root = cq.from(Group.class);
 		Predicate p = root.get(Group_.id).in(groupIds);
-		List<Group> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Group> os = em.createQuery(cq.select(root).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> personIds = new ArrayList<>();
 		for (Group o : os) {
 			personIds.addAll(o.getPersonList());

+ 3 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithRoleObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.person;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -93,7 +94,8 @@ class ActionListWithRoleObject extends BaseAction {
 		CriteriaQuery<Group> cq = cb.createQuery(Group.class);
 		Root<Group> root = cq.from(Group.class);
 		Predicate p = root.get(Group_.id).in(groupIds);
-		List<Group> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<Group> os = em.createQuery(cq.select(root).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> personIds = new ArrayList<>();
 		for (Group o : os) {
 			personIds.addAll(o.getPersonList());

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubDirect.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.person;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -74,8 +75,8 @@ class ActionListWithUnitSubDirect extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.unit).in(unitIds);
-		List<String> list = em.createQuery(cq.select(root.get(Identity_.person)).where(p).distinct(true))
-				.getResultList();
+		List<String> list = em.createQuery(cq.select(root.get(Identity_.person)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> values = business.person().listPersonDistinguishedNameSorted(list);
 		Wo wo = new Wo();
 		wo.getPersonList().addAll(values);

+ 5 - 3
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubDirectLike.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.person;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -93,7 +94,8 @@ class ActionListWithUnitSubDirectLike extends BaseAction {
 		p = cb.or(p, cb.like(cb.lower(root.get(Person_.mobile)), str + "%", StringTools.SQL_ESCAPE_CHAR));
 		p = cb.or(p, cb.like(cb.lower(root.get(Person_.distinguishedName)), str + "%", StringTools.SQL_ESCAPE_CHAR));
 		p = cb.and(p, cb.isMember(root.get(Person_.id), cb.literal(ids)));
-		List<String> list = em.createQuery(cq.select(root.get(Person_.id)).where(p).distinct(true)).getResultList();
+		List<String> list = em.createQuery(cq.select(root.get(Person_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> values = business.person().listPersonDistinguishedNameSorted(list);
 		Wo wo = new Wo();
 		wo.getPersonList().addAll(values);
@@ -108,8 +110,8 @@ class ActionListWithUnitSubDirectLike extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.unit).in(unitIds);
-		List<String> list = em.createQuery(cq.select(root.get(Identity_.person)).where(p).distinct(true))
-				.getResultList();
+		List<String> list = em.createQuery(cq.select(root.get(Identity_.person)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		return list;
 	}
 

+ 5 - 3
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubDirectLikeObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.person;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -95,7 +96,8 @@ class ActionListWithUnitSubDirectLikeObject extends BaseAction {
 		p = cb.or(p, cb.like(cb.lower(root.get(Person_.mobile)), str + "%", StringTools.SQL_ESCAPE_CHAR));
 		p = cb.or(p, cb.like(cb.lower(root.get(Person_.distinguishedName)), str + "%", StringTools.SQL_ESCAPE_CHAR));
 		p = cb.and(p, cb.isMember(root.get(Person_.id), cb.literal(ids)));
-		List<String> list = em.createQuery(cq.select(root.get(Person_.id)).where(p).distinct(true)).getResultList();
+		List<String> list = em.createQuery(cq.select(root.get(Person_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		for (Person o : business.person().pick(list)) {
 			wos.add(this.convert(business, o, Wo.class));
 		}
@@ -110,8 +112,8 @@ class ActionListWithUnitSubDirectLikeObject extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.unit).in(unitIds);
-		List<String> list = em.createQuery(cq.select(root.get(Identity_.person)).where(p).distinct(true))
-				.getResultList();
+		List<String> list = em.createQuery(cq.select(root.get(Identity_.person)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		return list;
 	}
 

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubDirectObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.person;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -78,8 +79,8 @@ class ActionListWithUnitSubDirectObject extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.unit).in(unitIds);
-		List<String> personIds = em.createQuery(cq.select(root.get(Identity_.person)).where(p).distinct(true))
-				.getResultList();
+		List<String> personIds = em.createQuery(cq.select(root.get(Identity_.person)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		personIds = ListTools.trim(personIds, true, true);
 		for (Person o : business.person().pick(personIds)) {
 			wos.add(this.convert(business, o, Wo.class));

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubNested.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.person;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -77,8 +78,8 @@ class ActionListWithUnitSubNested extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.unit).in(unitIds);
-		List<String> personIds = em.createQuery(cq.select(root.get(Identity_.person)).where(p).distinct(true))
-				.getResultList();
+		List<String> personIds = em.createQuery(cq.select(root.get(Identity_.person)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		personIds = ListTools.trim(personIds, true, true);
 		List<String> values = business.person().listPersonDistinguishedNameSorted(personIds);
 		Wo wo = new Wo();

+ 5 - 3
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubNestedLike.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.person;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -94,7 +95,8 @@ class ActionListWithUnitSubNestedLike extends BaseAction {
 		p = cb.or(p, cb.like(cb.lower(root.get(Person_.mobile)), str + "%", StringTools.SQL_ESCAPE_CHAR));
 		p = cb.or(p, cb.like(cb.lower(root.get(Person_.distinguishedName)), str + "%", StringTools.SQL_ESCAPE_CHAR));
 		p = cb.and(p, cb.isMember(root.get(Person_.id), cb.literal(ids)));
-		List<String> list = em.createQuery(cq.select(root.get(Person_.id)).where(p).distinct(true)).getResultList();
+		List<String> list = em.createQuery(cq.select(root.get(Person_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> values = business.person().listPersonDistinguishedNameSorted(list);
 		Wo wo = new Wo();
 		wo.getPersonList().addAll(values);
@@ -114,8 +116,8 @@ class ActionListWithUnitSubNestedLike extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.unit).in(unitIds);
-		List<String> list = em.createQuery(cq.select(root.get(Identity_.person)).where(p).distinct(true))
-				.getResultList();
+		List<String> list = em.createQuery(cq.select(root.get(Identity_.person)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		return list;
 	}
 

+ 5 - 3
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubNestedLikeObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.person;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -95,7 +96,8 @@ class ActionListWithUnitSubNestedLikeObject extends BaseAction {
 		p = cb.or(p, cb.like(cb.lower(root.get(Person_.mobile)), str + "%", StringTools.SQL_ESCAPE_CHAR));
 		p = cb.or(p, cb.like(cb.lower(root.get(Person_.distinguishedName)), str + "%", StringTools.SQL_ESCAPE_CHAR));
 		p = cb.and(p, cb.isMember(root.get(Person_.id), cb.literal(ids)));
-		List<String> list = em.createQuery(cq.select(root.get(Person_.id)).where(p).distinct(true)).getResultList();
+		List<String> list = em.createQuery(cq.select(root.get(Person_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		for (Person o : business.person().pick(list)) {
 			wos.add(this.convert(business, o, Wo.class));
 		}
@@ -115,8 +117,8 @@ class ActionListWithUnitSubNestedLikeObject extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.unit).in(unitIds);
-		List<String> list = em.createQuery(cq.select(root.get(Identity_.person)).where(p).distinct(true))
-				.getResultList();
+		List<String> list = em.createQuery(cq.select(root.get(Identity_.person)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		return list;
 	}
 

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/person/ActionListWithUnitSubNestedObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.person;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -80,8 +81,8 @@ class ActionListWithUnitSubNestedObject extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.unit).in(unitIds);
-		List<String> personIds = em.createQuery(cq.select(root.get(Identity_.person)).where(p).distinct(true))
-				.getResultList();
+		List<String> personIds = em.createQuery(cq.select(root.get(Identity_.person)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		personIds = ListTools.trim(personIds, true, true);
 		for (Person o : business.person().pick(personIds)) {
 			wos.add(this.convert(business, o, Wo.class));

+ 2 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/personattribute/ActionListNameWithPerson.java

@@ -87,8 +87,8 @@ class ActionListNameWithPerson extends BaseAction {
 			CriteriaQuery<String> cq = cb.createQuery(String.class);
 			Root<PersonAttribute> root = cq.from(PersonAttribute.class);
 			Predicate p = root.get(PersonAttribute_.person).in(ids);
-			List<String> names = em.createQuery(cq.select(root.get(PersonAttribute_.name)).where(p).distinct(true))
-					.getResultList();
+			List<String> names = em.createQuery(cq.select(root.get(PersonAttribute_.name)).where(p))
+					.getResultList().stream().distinct().collect(Collectors.toList());
 			names = names.stream().sorted().collect(Collectors.toList());
 			wo.getNameList().addAll(names);
 		}

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/personattribute/ActionListWithPersonObject.java

@@ -76,7 +76,7 @@ class ActionListWithPersonObject extends BaseAction {
 			CriteriaQuery<PersonAttribute> cq = cb.createQuery(PersonAttribute.class);
 			Root<PersonAttribute> root = cq.from(PersonAttribute.class);
 			Predicate p = root.get(PersonAttribute_.person).in(ids);
-			List<PersonAttribute> list = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+			List<PersonAttribute> list = em.createQuery(cq.select(root).where(p)).getResultList();
 			list = business.personAttribute().sort(list);
 			for (PersonAttribute o : list) {
 				wos.add(this.convert(business, o, Wo.class));

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/personattribute/BaseAction.java

@@ -38,7 +38,7 @@ class BaseAction extends StandardJaxrsAction {
 		CriteriaQuery<PersonAttribute> cq = cb.createQuery(PersonAttribute.class);
 		Root<PersonAttribute> root = cq.from(PersonAttribute.class);
 		Predicate p = root.get(PersonAttribute_.id).in(personAttributeIds);
-		List<PersonAttribute> list = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<PersonAttribute> list = em.createQuery(cq.select(root).where(p)).getResultList();
 		list = business.personAttribute().sort(list);
 		List<String> values = ListTools.extractProperty(list, "distinguishedName", String.class, true, true);
 		return values;

+ 2 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/role/ActionListWithPerson.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.role;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -89,7 +90,7 @@ class ActionListWithPerson extends BaseAction {
 		Root<Role> root = cq.from(Role.class);
 		Predicate p = root.get(Role_.personList).in(personIds);
 		p = cb.or(p, root.get(Role_.groupList).in(groupIds));
-		List<String> roleIds = em.createQuery(cq.select(root.get(Role_.id)).where(p).distinct(true)).getResultList();
+		List<String> roleIds = em.createQuery(cq.select(root.get(Role_.id)).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		Wo wo = new Wo();
 		wo.getRoleList().addAll(business.role().listRoleDistinguishedNameSorted(roleIds));
 		return wo;

+ 2 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/role/ActionListWithPersonObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.role;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -81,7 +82,7 @@ class ActionListWithPersonObject extends BaseAction {
 		Root<Role> root = cq.from(Role.class);
 		Predicate p = root.get(Role_.personList).in(personIds);
 		p = cb.or(p, root.get(Role_.groupList).in(groupIds));
-		List<String> roleIds = em.createQuery(cq.select(root.get(Role_.id)).where(p).distinct(true)).getResultList();
+		List<String> roleIds = em.createQuery(cq.select(root.get(Role_.id)).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		for (Role o : business.role().pick(roleIds)) {
 			wos.add(this.convert(business, o, Wo.class));
 		}

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithIdentity.java

@@ -72,7 +72,7 @@ class ActionListWithIdentity extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.id).in(ids);
-		List<String> unitIds = em.createQuery(cq.select(root.get(Identity_.unit)).where(p).distinct(true))
+		List<String> unitIds = em.createQuery(cq.select(root.get(Identity_.unit)).where(p))
 				.getResultList();
 		Wo wo = new Wo();
 		List<String> list = business.unit().listUnitDistinguishedNameSorted(unitIds);

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithIdentityObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -75,8 +76,8 @@ class ActionListWithIdentityObject extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.id).in(ids);
-		List<String> unitIds = em.createQuery(cq.select(root.get(Identity_.unit)).where(p).distinct(true))
-				.getResultList();
+		List<String> unitIds = em.createQuery(cq.select(root.get(Identity_.unit)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		unitIds = ListTools.trim(unitIds, true, true);
 		for (Unit o : business.unit().pick(unitIds)) {
 			wos.add(this.convert(business, o, Wo.class));

+ 3 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithIdentitySupNested.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -74,7 +75,8 @@ class ActionListWithIdentitySupNested extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.id).in(identityIds);
-		List<String> os = em.createQuery(cq.select(root.get(Identity_.unit)).where(p).distinct(true)).getResultList();
+		List<String> os = em.createQuery(cq.select(root.get(Identity_.unit)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> unitIds = new ArrayList<>(os);
 		for (String str : os) {
 			unitIds.addAll(business.unit().listSupNested(str));

+ 2 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithIdentitySupNestedObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -76,7 +77,7 @@ class ActionListWithIdentitySupNestedObject extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.id).in(identityIds);
-		List<String> os = em.createQuery(cq.select(root.get(Identity_.unit)).where(p).distinct(true)).getResultList();
+		List<String> os = em.createQuery(cq.select(root.get(Identity_.unit)).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> unitIds = new ArrayList<>(os);
 		for (String str : os) {
 			unitIds.addAll(business.unit().listSupNested(str));

+ 2 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithLevel.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -68,7 +69,7 @@ class ActionListWithLevel extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Unit> root = cq.from(Unit.class);
 		Predicate p = root.get(Unit_.level).in(wi.getLevelList());
-		List<String> unitIds = em.createQuery(cq.select(root.get(Unit_.id)).where(p).distinct(true)).getResultList();
+		List<String> unitIds = em.createQuery(cq.select(root.get(Unit_.id)).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		Wo wo = new Wo();
 		List<String> list = business.unit().listUnitDistinguishedNameSorted(unitIds);
 		wo.getUnitList().addAll(list);

+ 3 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithLevelObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -71,7 +72,8 @@ class ActionListWithLevelObject extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Unit> root = cq.from(Unit.class);
 		Predicate p = root.get(Unit_.level).in(wi.getLevelList());
-		List<String> unitIds = em.createQuery(cq.select(root.get(Unit_.id)).where(p).distinct(true)).getResultList();
+		List<String> unitIds = em.createQuery(cq.select(root.get(Unit_.id)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		unitIds = ListTools.trim(unitIds, true, true);
 		for (Unit o : business.unit().pick(unitIds)) {
 			wos.add(this.convert(business, o, Wo.class));

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithPerson.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -75,8 +76,8 @@ class ActionListWithPerson extends BaseAction {
 			CriteriaQuery<String> cq = cb.createQuery(String.class);
 			Root<Identity> root = cq.from(Identity.class);
 			Predicate p = root.get(Identity_.person).in(ids);
-			List<String> unitIds = em.createQuery(cq.select(root.get(Identity_.unit)).where(p).distinct(true))
-					.getResultList();
+			List<String> unitIds = em.createQuery(cq.select(root.get(Identity_.unit)).where(p))
+					.getResultList().stream().distinct().collect(Collectors.toList());
 			unitIds = ListTools.trim(unitIds, true, true);
 			if (ListTools.isNotEmpty(unitIds)) {
 				List<String> list = business.unit().listUnitDistinguishedNameSorted(unitIds);

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithPersonObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -77,8 +78,8 @@ class ActionListWithPersonObject extends BaseAction {
 			CriteriaQuery<String> cq = cb.createQuery(String.class);
 			Root<Identity> root = cq.from(Identity.class);
 			Predicate p = root.get(Identity_.person).in(ids);
-			List<String> unitIds = em.createQuery(cq.select(root.get(Identity_.unit)).where(p).distinct(true))
-					.getResultList();
+			List<String> unitIds = em.createQuery(cq.select(root.get(Identity_.unit)).where(p))
+					.getResultList().stream().distinct().collect(Collectors.toList());
 			unitIds = ListTools.trim(unitIds, true, true);
 			for (Unit o : business.unit().pick(unitIds)) {
 				wos.add(this.convert(business, o, Wo.class));

+ 3 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithPersonSupNested.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -73,7 +74,8 @@ class ActionListWithPersonSupNested extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.person).in(personIds);
-		List<String> os = em.createQuery(cq.select(root.get(Identity_.unit)).where(p).distinct(true)).getResultList();
+		List<String> os = em.createQuery(cq.select(root.get(Identity_.unit)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> unitIds = new ArrayList<>(os);
 		for (String str : os) {
 			unitIds.addAll(business.unit().listSupNested(str));

+ 2 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithPersonSupNestedObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -76,7 +77,7 @@ class ActionListWithPersonSupNestedObject extends BaseAction {
 		CriteriaQuery<String> cq = cb.createQuery(String.class);
 		Root<Identity> root = cq.from(Identity.class);
 		Predicate p = root.get(Identity_.person).in(personIds);
-		List<String> os = em.createQuery(cq.select(root.get(Identity_.unit)).where(p).distinct(true)).getResultList();
+		List<String> os = em.createQuery(cq.select(root.get(Identity_.unit)).where(p)).getResultList().stream().distinct().collect(Collectors.toList());
 		List<String> unitIds = new ArrayList<>(os);
 		for (String str : os) {
 			unitIds.addAll(business.unit().listSupNested(str));

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithUnitAttribute.java

@@ -2,6 +2,7 @@ package com.x.organization.assemble.express.jaxrs.unit;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -79,8 +80,8 @@ class ActionListWithUnitAttribute extends BaseAction {
 		Root<UnitAttribute> root = cq.from(UnitAttribute.class);
 		Predicate p = cb.isMember(wi.getAttribute(), root.get(UnitAttribute_.attributeList));
 		p = cb.and(p, cb.equal(root.get(UnitAttribute_.name), wi.getName()));
-		List<String> unitIds = em.createQuery(cq.select(root.get(UnitAttribute_.unit)).where(p).distinct(true))
-				.getResultList();
+		List<String> unitIds = em.createQuery(cq.select(root.get(UnitAttribute_.unit)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		Wo wo = new Wo();
 		List<String> list = business.unit().listUnitDistinguishedNameSorted(unitIds);
 		wo.getUnitList().addAll(list);

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithUnitAttributeObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -84,8 +85,8 @@ class ActionListWithUnitAttributeObject extends BaseAction {
 		Root<UnitAttribute> root = cq.from(UnitAttribute.class);
 		Predicate p = cb.isMember(wi.getAttribute(), root.get(UnitAttribute_.attributeList));
 		p = cb.and(p, cb.equal(root.get(UnitAttribute_.name), wi.getName()));
-		List<String> unitIds = em.createQuery(cq.select(root.get(UnitAttribute_.unit)).where(p).distinct(true))
-				.getResultList();
+		List<String> unitIds = em.createQuery(cq.select(root.get(UnitAttribute_.unit)).where(p))
+				.getResultList().stream().distinct().collect(Collectors.toList());
 		unitIds = ListTools.trim(unitIds, true, true);
 		for (Unit o : business.unit().pick(unitIds)) {
 			wos.add(this.convert(business, o, Wo.class));

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithUnitDuty.java

@@ -2,6 +2,7 @@ package com.x.organization.assemble.express.jaxrs.unit;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -83,8 +84,8 @@ class ActionListWithUnitDuty extends BaseAction {
 			Root<UnitDuty> root = cq.from(UnitDuty.class);
 			Predicate p = cb.isMember(identity.getId(), root.get(UnitDuty_.identityList));
 			p = cb.and(p, cb.equal(root.get(UnitDuty_.name), wi.getName()));
-			List<String> unitIds = em.createQuery(cq.select(root.get(UnitDuty_.unit)).where(p).distinct(true))
-					.getResultList();
+			List<String> unitIds = em.createQuery(cq.select(root.get(UnitDuty_.unit)).where(p))
+					.getResultList().stream().distinct().collect(Collectors.toList());
 			List<String> list = business.unit().listUnitDistinguishedNameSorted(unitIds);
 			wo.getUnitList().addAll(list);
 		}

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unit/ActionListWithUnitDutyObject.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unit;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -87,8 +88,8 @@ class ActionListWithUnitDutyObject extends BaseAction {
 			Root<UnitDuty> root = cq.from(UnitDuty.class);
 			Predicate p = cb.isMember(identity.getId(), root.get(UnitDuty_.identityList));
 			p = cb.and(p, cb.equal(root.get(UnitDuty_.name), wi.getName()));
-			List<String> unitIds = em.createQuery(cq.select(root.get(UnitDuty_.unit)).where(p).distinct(true))
-					.getResultList();
+			List<String> unitIds = em.createQuery(cq.select(root.get(UnitDuty_.unit)).where(p))
+					.getResultList().stream().distinct().collect(Collectors.toList());
 			unitIds = ListTools.trim(unitIds, true, true);
 			for (Unit o : business.unit().pick(unitIds)) {
 				wos.add(this.convert(business, o, Wo.class));

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitattribute/ActionListNameWithUnit.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unitattribute;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -84,8 +85,8 @@ class ActionListNameWithUnit extends BaseAction {
 			CriteriaQuery<String> cq = cb.createQuery(String.class);
 			Root<UnitAttribute> root = cq.from(UnitAttribute.class);
 			Predicate p = root.get(UnitAttribute_.unit).in(ids);
-			List<String> names = em.createQuery(cq.select(root.get(UnitAttribute_.name)).where(p).distinct(true))
-					.getResultList();
+			List<String> names = em.createQuery(cq.select(root.get(UnitAttribute_.name)).where(p))
+					.getResultList().stream().distinct().collect(Collectors.toList());
 			if (!names.isEmpty()) {
 				wo.getNameList().addAll(names);
 			}

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitattribute/ActionListWithUnitObject.java

@@ -76,7 +76,7 @@ class ActionListWithUnitObject extends BaseAction {
 			CriteriaQuery<UnitAttribute> cq = cb.createQuery(UnitAttribute.class);
 			Root<UnitAttribute> root = cq.from(UnitAttribute.class);
 			Predicate p = root.get(UnitAttribute_.unit).in(ids);
-			List<UnitAttribute> list = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+			List<UnitAttribute> list = em.createQuery(cq.select(root).where(p)).getResultList();
 			list = business.unitAttribute().sort(list);
 			for (UnitAttribute o : list) {
 				wos.add(this.convert(business, o, Wo.class));

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitattribute/BaseAction.java

@@ -38,7 +38,7 @@ class BaseAction extends StandardJaxrsAction {
 		CriteriaQuery<UnitAttribute> cq = cb.createQuery(UnitAttribute.class);
 		Root<UnitAttribute> root = cq.from(UnitAttribute.class);
 		Predicate p = root.get(UnitAttribute_.id).in(unitAttributeIds);
-		List<UnitAttribute> list = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<UnitAttribute> list = em.createQuery(cq.select(root).where(p)).getResultList();
 		list = business.unitAttribute().sort(list);
 		List<String> values = ListTools.extractProperty(list, "distinguishedName", String.class, true, true);
 		return values;

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitduty/ActionListNameWithIdentity.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unitduty;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -85,8 +86,8 @@ class ActionListNameWithIdentity extends BaseAction {
 			CriteriaQuery<String> cq = cb.createQuery(String.class);
 			Root<UnitDuty> root = cq.from(UnitDuty.class);
 			Predicate p = root.get(UnitDuty_.identityList).in(ids);
-			List<String> names = em.createQuery(cq.select(root.get(UnitDuty_.name)).where(p).distinct(true))
-					.getResultList();
+			List<String> names = em.createQuery(cq.select(root.get(UnitDuty_.name)).where(p))
+					.getResultList().stream().distinct().collect(Collectors.toList());
 			if (!names.isEmpty()) {
 				wo.getNameList().addAll(names);
 			}

+ 3 - 2
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitduty/ActionListNameWithUnit.java

@@ -3,6 +3,7 @@ package com.x.organization.assemble.express.jaxrs.unitduty;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.persistence.EntityManager;
 import javax.persistence.criteria.CriteriaBuilder;
@@ -85,8 +86,8 @@ class ActionListNameWithUnit extends BaseAction {
 			CriteriaQuery<String> cq = cb.createQuery(String.class);
 			Root<UnitDuty> root = cq.from(UnitDuty.class);
 			Predicate p = root.get(UnitDuty_.unit).in(ids);
-			List<String> names = em.createQuery(cq.select(root.get(UnitDuty_.name)).where(p).distinct(true))
-					.getResultList();
+			List<String> names = em.createQuery(cq.select(root.get(UnitDuty_.name)).where(p))
+					.getResultList().stream().distinct().collect(Collectors.toList());
 			if (!names.isEmpty()) {
 				wo.getNameList().addAll(names);
 			}

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitduty/ActionListWithUnitObject.java

@@ -76,7 +76,7 @@ class ActionListWithUnitObject extends BaseAction {
 			CriteriaQuery<UnitDuty> cq = cb.createQuery(UnitDuty.class);
 			Root<UnitDuty> root = cq.from(UnitDuty.class);
 			Predicate p = root.get(UnitDuty_.unit).in(ids);
-			List<UnitDuty> list = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+			List<UnitDuty> list = em.createQuery(cq.select(root).where(p)).getResultList();
 			list = business.unitDuty().sort(list);
 			for (UnitDuty o : list) {
 				wos.add(this.convert(business, o, Wo.class));

+ 1 - 1
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitduty/BaseAction.java

@@ -38,7 +38,7 @@ class BaseAction extends StandardJaxrsAction {
 		CriteriaQuery<UnitDuty> cq = cb.createQuery(UnitDuty.class);
 		Root<UnitDuty> root = cq.from(UnitDuty.class);
 		Predicate p = root.get(UnitDuty_.id).in(unitDutyIds);
-		List<UnitDuty> list = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+		List<UnitDuty> list = em.createQuery(cq.select(root).where(p)).getResultList();
 		list = business.unitDuty().sort(list);
 		List<String> values = ListTools.extractProperty(list, "distinguishedName", String.class, true, true);
 		return values;

+ 1 - 1
o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/GroupFactory.java

@@ -87,7 +87,7 @@ public class GroupFactory extends AbstractFactory {
 				CriteriaQuery<Group> cq = cb.createQuery(Group.class);
 				Root<Group> root = cq.from(Group.class);
 				Predicate p = cb.equal(root.get(Group_.name), name);
-				List<Group> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Group> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 1 - 1
o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/IdentityFactory.java

@@ -66,7 +66,7 @@ public class IdentityFactory extends AbstractFactory {
 				CriteriaQuery<Identity> cq = cb.createQuery(Identity.class);
 				Root<Identity> root = cq.from(Identity.class);
 				Predicate p = cb.equal(root.get(Identity_.name), name);
-				List<Identity> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Identity> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 1 - 1
o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/PersonAttributeFactory.java

@@ -66,7 +66,7 @@ public class PersonAttributeFactory extends AbstractFactory {
 				CriteriaQuery<PersonAttribute> cq = cb.createQuery(PersonAttribute.class);
 				Root<PersonAttribute> root = cq.from(PersonAttribute.class);
 				Predicate p = cb.equal(root.get(PersonAttribute_.name), name);
-				List<PersonAttribute> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<PersonAttribute> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 2 - 2
o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/PersonFactory.java

@@ -71,7 +71,7 @@ public class PersonFactory extends AbstractFactory {
 				CriteriaQuery<Person> cq = cb.createQuery(Person.class);
 				Root<Person> root = cq.from(Person.class);
 				Predicate p = cb.equal(root.get(Person_.name), name);
-				List<Person> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Person> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);
@@ -118,7 +118,7 @@ public class PersonFactory extends AbstractFactory {
 			p = cb.or(p, cb.equal(root.get(Person_.qq), value));
 			p = cb.or(p, cb.equal(root.get(Person_.mail), value));
 			p = cb.or(p, cb.equal(root.get(Person_.weixin), value));
-			List<Person> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+			List<Person> os = em.createQuery(cq.select(root).where(p)).getResultList();
 			if (os.size() == 1) {
 				person = os.get(0);
 			}

+ 1 - 1
o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/RoleFactory.java

@@ -67,7 +67,7 @@ public class RoleFactory extends AbstractFactory {
 				CriteriaQuery<Role> cq = cb.createQuery(Role.class);
 				Root<Role> root = cq.from(Role.class);
 				Predicate p = cb.equal(root.get(Role_.name), name);
-				List<Role> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Role> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 1 - 1
o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/UnitAttributeFactory.java

@@ -66,7 +66,7 @@ public class UnitAttributeFactory extends AbstractFactory {
 				CriteriaQuery<UnitAttribute> cq = cb.createQuery(UnitAttribute.class);
 				Root<UnitAttribute> root = cq.from(UnitAttribute.class);
 				Predicate p = cb.equal(root.get(UnitAttribute_.name), name);
-				List<UnitAttribute> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<UnitAttribute> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 1 - 1
o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/UnitDutyFactory.java

@@ -66,7 +66,7 @@ public class UnitDutyFactory extends AbstractFactory {
 				CriteriaQuery<UnitDuty> cq = cb.createQuery(UnitDuty.class);
 				Root<UnitDuty> root = cq.from(UnitDuty.class);
 				Predicate p = cb.equal(root.get(UnitDuty_.name), name);
-				List<UnitDuty> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<UnitDuty> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);

+ 2 - 2
o2server/x_organization_assemble_personal/src/main/java/com/x/organization/assemble/personal/factory/UnitFactory.java

@@ -68,7 +68,7 @@ public class UnitFactory extends AbstractFactory {
 				CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
 				Root<Unit> root = cq.from(Unit.class);
 				Predicate p = cb.equal(root.get(Unit_.name), name);
-				List<Unit> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Unit> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				if (os.size() == 1) {
 					o = os.get(0);
 					em.detach(o);
@@ -81,7 +81,7 @@ public class UnitFactory extends AbstractFactory {
 				CriteriaQuery<Unit> cq = cb.createQuery(Unit.class);
 				Root<Unit> root = cq.from(Unit.class);
 				Predicate p = root.get(Unit_.name).in(names);
-				List<Unit> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
+				List<Unit> os = em.createQuery(cq.select(root).where(p)).getResultList();
 				os = os.stream().sorted(Comparator.comparing(Unit::getLevel, Comparator.nullsLast(Integer::compareTo)))
 						.collect(Collectors.toList());
 				List<String> values = ListTools.extractProperty(os, "name", String.class, false, false);