diff --git a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/query-people-common-SqlMap.xml b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/query-people-common-SqlMap.xml
index 71b74f05a6..2ba608f54a 100644
--- a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/query-people-common-SqlMap.xml
+++ b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/query-people-common-SqlMap.xml
@@ -27,20 +27,23 @@
where
assoc.parent_node_id = #{parentNodeId}
+
+
+ and lower(concat(
+
- and
- (
- lower(prop1.string_value) like lower(#{pattern})
+ prop1.string_value, ' ',
- or lower(prop2.string_value) like lower(#{pattern})
+ prop2.string_value, ' ',
- or lower(prop3.string_value) like lower(#{pattern})
+ prop3.string_value, ' ',
-
- )
+
+ ' ')) like lower(#{item})
+
and exists (
select *
diff --git a/source/java/org/alfresco/repo/security/person/FilterSortPersonEntity.java b/source/java/org/alfresco/repo/security/person/FilterSortPersonEntity.java
index 095bb87046..f7d4ceee6a 100644
--- a/source/java/org/alfresco/repo/security/person/FilterSortPersonEntity.java
+++ b/source/java/org/alfresco/repo/security/person/FilterSortPersonEntity.java
@@ -18,6 +18,7 @@
*/
package org.alfresco.repo.security.person;
+import java.util.ArrayList;
import java.util.List;
@@ -42,7 +43,7 @@ public class FilterSortPersonEntity
private Long prop3qnameId = null;
private Boolean sort3asc = null;
- private String pattern;
+ private List pattern;
private List includeAspectIds;
private List excludeAspectIds;
@@ -65,7 +66,7 @@ public class FilterSortPersonEntity
this.parentNodeId = parentNodeId;
}
- public String getPattern()
+ public List getPattern()
{
return pattern;
}
@@ -93,13 +94,20 @@ public class FilterSortPersonEntity
public void setPattern(String pattern)
{
+ this.pattern = new ArrayList();
if (pattern != null)
{
// escape the '%' character with '\' (standard SQL escape character)
//pattern = escape(pattern, '%');
// replace the wildcard character '*' with the one used in database queries i.e. '%'
- this.pattern = pattern.replace('*', '%');
+ pattern = pattern.replace('*', '%');
+
+ String[] parts = pattern.split(" ");
+ for(String part:parts)
+ {
+ this.pattern.add("%" + part + "%");
+ }
}
}