You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2016/04/19 15:01:58 UTC

[11/24] syncope git commit: [SYNCOPE-822] UUID keys

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/main/resources/indexes.xml
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/resources/indexes.xml b/core/persistence-jpa/src/main/resources/indexes.xml
index 3807b35..b9bb332 100644
--- a/core/persistence-jpa/src/main/resources/indexes.xml
+++ b/core/persistence-jpa/src/main/resources/indexes.xml
@@ -45,24 +45,24 @@ under the License.
   <entry key="CPlainAttrValue_doublevalueIndex">CREATE INDEX CAttrValue_doublevalueIndex ON CPlainAttrValue(doublevalue)</entry>
   <entry key="CPlainAttrValue_booleanvalueIndex">CREATE INDEX CAttrValue_booleanvalueIndex ON CPlainAttrValue(booleanvalue)</entry>
 
-  <entry key="UMembership_GroupIndex">CREATE INDEX UMembership_GroupIndex ON UMembership(group_id)</entry>
-  <entry key="UMembership_UserIndex">CREATE INDEX UMembership_UserIndex ON UMembership(user_id)</entry>
-  <entry key="AMembership_GroupIndex">CREATE INDEX AMembership_GroupIndex ON AMembership(group_id)</entry>
-  <entry key="AMembership_AnyObjectIndex">CREATE INDEX AMembership_AnyObjectIndex ON AMembership(anyObject_id)</entry>
+  <entry key="UMembership_GroupIndex">CREATE INDEX UMembership_GroupIndex ON UMembership(group_key)</entry>
+  <entry key="UMembership_UserIndex">CREATE INDEX UMembership_UserIndex ON UMembership(user_key)</entry>
+  <entry key="AMembership_GroupIndex">CREATE INDEX AMembership_GroupIndex ON AMembership(group_key)</entry>
+  <entry key="AMembership_AnyObjectIndex">CREATE INDEX AMembership_AnyObjectIndex ON AMembership(anyObject_key)</entry>
 
-  <entry key="URelationship_RightIndex">CREATE INDEX URelationship_RightIndex ON URelationship(anyObject_id)</entry>
-  <entry key="URelationship_LeftIndex">CREATE INDEX URelationship_LeftIndex ON URelationship(user_id)</entry>
-  <entry key="ARelationship_RightIndex">CREATE INDEX ARelationship_RightIndex ON ARelationship(right_anyObject_id)</entry>
-  <entry key="ARelationship_AnyObjectIndex">CREATE INDEX ARelationship_AnyObjectIndex ON ARelationship(left_anyObject_id)</entry>
+  <entry key="URelationship_RightIndex">CREATE INDEX URelationship_RightIndex ON URelationship(anyObject_key)</entry>
+  <entry key="URelationship_LeftIndex">CREATE INDEX URelationship_LeftIndex ON URelationship(user_key)</entry>
+  <entry key="ARelationship_RightIndex">CREATE INDEX ARelationship_RightIndex ON ARelationship(right_anyObject_key)</entry>
+  <entry key="ARelationship_AnyObjectIndex">CREATE INDEX ARelationship_AnyObjectIndex ON ARelationship(left_anyObject_key)</entry>
 
-  <entry key="UPlainAttrValue_attrIndex">CREATE INDEX UPlainAttrValue_attrIndex on UPlainAttrValue(attribute_id)</entry>
-  <entry key="GPlainAttrValue_attrIndex">CREATE INDEX GPlainAttrValue_attrIndex on GPlainAttrValue(attribute_id)</entry>
-  <entry key="APlainAttrValue_attrIndex">CREATE INDEX APlainAttrValue_attrIndex on APlainAttrValue(attribute_id)</entry>
-  <entry key="CPlainAttrValue_attrIndex">CREATE INDEX CPlainAttrValue_attrIndex on CPlainAttrValue(attribute_id)</entry>
+  <entry key="UPlainAttrValue_attrIndex">CREATE INDEX UPlainAttrValue_attrIndex on UPlainAttrValue(attribute_key)</entry>
+  <entry key="GPlainAttrValue_attrIndex">CREATE INDEX GPlainAttrValue_attrIndex on GPlainAttrValue(attribute_key)</entry>
+  <entry key="APlainAttrValue_attrIndex">CREATE INDEX APlainAttrValue_attrIndex on APlainAttrValue(attribute_key)</entry>
+  <entry key="CPlainAttrValue_attrIndex">CREATE INDEX CPlainAttrValue_attrIndex on CPlainAttrValue(attribute_key)</entry>
 
-  <entry key="UPlainAttr_owner_id_index">CREATE INDEX UPlainAttr_owner_id_index on UPlainAttr(owner_id)</entry>
-  <entry key="GPlainAttr_owner_id_index">CREATE INDEX GPlainAttr_owner_id_index on GPlainAttr(owner_id)</entry>
-  <entry key="APlainAttr_owner_id_index">CREATE INDEX APlainAttr_owner_id_index on APlainAttr(owner_id)</entry>
+  <entry key="UPlainAttr_owner_key_index">CREATE INDEX UPlainAttr_owner_key_index on UPlainAttr(owner_key)</entry>
+  <entry key="GPlainAttr_owner_key_index">CREATE INDEX GPlainAttr_owner_key_index on GPlainAttr(owner_key)</entry>
+  <entry key="APlainAttr_owner_key_index">CREATE INDEX APlainAttr_owner_key_index on APlainAttr(owner_key)</entry>
 
   <entry key="Task_executedIndex">CREATE INDEX Task_executedIndex ON Task(executed)</entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/main/resources/persistence-enhance.xml
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/resources/persistence-enhance.xml b/core/persistence-jpa/src/main/resources/persistence-enhance.xml
new file mode 100644
index 0000000..1fbd550
--- /dev/null
+++ b/core/persistence-jpa/src/main/resources/persistence-enhance.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
+                                 http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
+             version="2.0">
+  
+  <persistence-unit name="Master">
+    <mapping-file>META-INF/spring-orm.xml</mapping-file>
+    <validation-mode>NONE</validation-mode>
+  </persistence-unit>
+  
+</persistence>

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/main/resources/views.xml
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/resources/views.xml b/core/persistence-jpa/src/main/resources/views.xml
index 48c801e..31eb379 100644
--- a/core/persistence-jpa/src/main/resources/views.xml
+++ b/core/persistence-jpa/src/main/resources/views.xml
@@ -25,225 +25,225 @@ under the License.
   <entry key="user_search">
     CREATE VIEW user_search AS
  
-    SELECT u.id as any_id, u.* FROM SyncopeUser u
+    SELECT u.key as any_key, u.* FROM SyncopeUser u
   </entry>
   <entry key="user_search_unique_attr">
     CREATE VIEW user_search_unique_attr AS
 
-    SELECT ua.owner_id AS any_id,
-    ua.schema_name AS schema_name,
+    SELECT ua.owner_key AS any_key,
+    ua.schema_key AS schema_key,
     uav.booleanvalue AS booleanvalue,
     uav.datevalue AS datevalue,
     uav.doublevalue AS doublevalue,
     uav.longvalue AS longvalue,
     uav.stringvalue AS stringvalue
     FROM UPlainAttrUniqueValue uav, UPlainAttr ua
-    WHERE uav.attribute_id = ua.id
+    WHERE uav.attribute_key = ua.key
   </entry>
   <entry key="user_search_attr">
     CREATE VIEW user_search_attr AS
 
-    SELECT ua.owner_id AS any_id,
-    ua.schema_name AS schema_name,
+    SELECT ua.owner_key AS any_key,
+    ua.schema_key AS schema_key,
     uav.booleanvalue AS booleanvalue,
     uav.datevalue AS datevalue,
     uav.doublevalue AS doublevalue,
     uav.longvalue AS longvalue,
     uav.stringvalue AS stringvalue
     FROM UPlainAttrValue uav, UPlainAttr ua
-    WHERE uav.attribute_id = ua.id
+    WHERE uav.attribute_key = ua.key
   </entry>
   <entry key="user_search_null_attr">
     CREATE VIEW user_search_null_attr AS
 
-    SELECT u.id AS any_id,
-    PlainSchema.name AS schema_name,
+    SELECT u.key AS any_key,
+    PlainSchema.key AS schema_key,
     NULL AS booleanvalue,
     NULL AS datevalue,
     NULL AS doublevalue,
     NULL AS longvalue,
     NULL AS stringvalue
     FROM SyncopeUser u CROSS JOIN PlainSchema
-    LEFT OUTER JOIN UPlainAttr ua ON (PlainSchema.name = ua.schema_name AND ua.owner_id = u.id)
-    WHERE ua.id IS NULL
+    LEFT OUTER JOIN UPlainAttr ua ON (PlainSchema.key = ua.schema_key AND ua.owner_key = u.key)
+    WHERE ua.key IS NULL
   </entry>
   <entry key="user_search_urelationship">
     CREATE VIEW user_search_urelationship AS
 
-    SELECT m.user_id AS any_id, m.anyObject_id AS right_any_id, m.type_name AS type
+    SELECT m.user_key AS any_key, m.anyObject_key AS right_any_key, m.type_key AS type
     FROM URelationship m
   </entry>
   <entry key="user_search_umembership">
     CREATE VIEW user_search_umembership AS
 
-    SELECT m.user_id AS any_id, g.id AS group_id, g.name AS group_name
+    SELECT m.user_key AS any_key, g.key AS group_key, g.name AS group_name
     FROM UMembership m, SyncopeGroup g
-    WHERE m.group_id = g.id
+    WHERE m.group_key = g.key
   </entry>
   <entry key="user_search_udyngmemb">
     CREATE VIEW user_search_udyngmemb AS
 
-    SELECT ds.user_id AS any_id, d.group_id AS group_id
+    SELECT ds.user_key AS any_key, d.group_key AS group_key
     FROM UDynGroupMembership d, UDynGroupMembership_User ds
-    WHERE d.id = ds.uDynGroupMembership_id
+    WHERE d.key = ds.uDynGroupMembership_key
   </entry>
   <entry key="user_search_role">
     CREATE VIEW user_search_role AS
 
-    SELECT ss.user_id AS any_id, ss.role_name AS role_name
+    SELECT ss.user_key AS any_key, ss.role_key AS role_key
     FROM SyncopeUser_SyncopeRole ss
   </entry>
   <entry key="user_search_dynrmemb">
     CREATE VIEW user_search_dynrmemb AS
 
-    SELECT ds.user_id AS any_id, d.role_name AS role_name
+    SELECT ds.user_key AS any_key, d.role_key AS role_key
     FROM DynRoleMembership d, DynRoleMembership_User ds
-    WHERE d.id = ds.dynRoleMembership_id
+    WHERE d.key = ds.dynRoleMembership_key
   </entry>
   <entry key="user_search_resource">
     CREATE VIEW user_search_resource AS
 
-    SELECT st.user_id AS any_id, st.resource_name AS resource_name
+    SELECT st.user_key AS any_key, st.resource_key AS resource_key
     FROM SyncopeUser_ExternalResource st
   </entry>
   <entry key="user_search_group_res">
     CREATE VIEW user_search_group_res AS
 
-    SELECT m.user_id AS any_id, st.resource_name AS resource_name
+    SELECT m.user_key AS any_key, st.resource_key AS resource_key
     FROM UMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st
-    WHERE m.group_id = r.id AND st.group_id = r.id
+    WHERE m.group_key = r.key AND st.group_key = r.key
   </entry>
 
   <!-- anyObject -->
   <entry key="anyObject_search">
     CREATE VIEW anyObject_search AS
  
-    SELECT a.id as any_id, a.* FROM AnyObject a
+    SELECT a.key as any_key, a.* FROM AnyObject a
   </entry>
   <entry key="anyObject_search_unique_attr">
     CREATE VIEW anyObject_search_unique_attr AS
 
-    SELECT ua.owner_id AS any_id,
-    ua.schema_name AS schema_name,
+    SELECT ua.owner_key AS any_key,
+    ua.schema_key AS schema_key,
     uav.booleanvalue AS booleanvalue,
     uav.datevalue AS datevalue,
     uav.doublevalue AS doublevalue,
     uav.longvalue AS longvalue,
     uav.stringvalue AS stringvalue
     FROM APlainAttrUniqueValue uav, APlainAttr ua
-    WHERE uav.attribute_id = ua.id
+    WHERE uav.attribute_key = ua.key
   </entry>
   <entry key="anyObject_search_attr">
     CREATE VIEW anyObject_search_attr AS
 
-    SELECT ua.owner_id AS any_id,
-    ua.schema_name AS schema_name,
+    SELECT ua.owner_key AS any_key,
+    ua.schema_key AS schema_key,
     uav.booleanvalue AS booleanvalue,
     uav.datevalue AS datevalue,
     uav.doublevalue AS doublevalue,
     uav.longvalue AS longvalue,
     uav.stringvalue AS stringvalue
     FROM APlainAttrValue uav, APlainAttr ua
-    WHERE uav.attribute_id = ua.id
+    WHERE uav.attribute_key = ua.key
   </entry>
   <entry key="anyObject_search_null_attr">
     CREATE VIEW anyObject_search_null_attr AS
 
-    SELECT u.id AS any_id,
-    PlainSchema.name AS schema_name,
+    SELECT u.key AS any_key,
+    PlainSchema.key AS schema_key,
     NULL AS booleanvalue,
     NULL AS datevalue,
     NULL AS doublevalue,
     NULL AS longvalue,
     NULL AS stringvalue
     FROM AnyObject u CROSS JOIN PlainSchema
-    LEFT OUTER JOIN APlainAttr ua ON (PlainSchema.name = ua.schema_name AND ua.owner_id = u.id)
-    WHERE ua.id IS NULL
+    LEFT OUTER JOIN APlainAttr ua ON (PlainSchema.key = ua.schema_key AND ua.owner_key = u.key)
+    WHERE ua.key IS NULL
   </entry>
   <entry key="anyObject_search_arelationship">
     CREATE VIEW anyObject_search_arelationship AS
 
-    SELECT m.left_anyObject_id AS any_id, m.right_anyObject_id AS right_any_id, m.type_name AS type
+    SELECT m.left_anyObject_key AS any_key, m.right_anyObject_key AS right_any_key, m.type_key AS type
     FROM ARelationship m
   </entry>
   <entry key="anyObject_search_amembership">
     CREATE VIEW anyObject_search_amembership AS
 
-    SELECT m.anyObject_id AS any_id, g.id AS group_id, g.name AS group_name
+    SELECT m.anyObject_key AS any_key, g.key AS group_key, g.name AS group_name
     FROM AMembership m, SyncopeGroup g
-    WHERE m.group_id = g.id
+    WHERE m.group_key = g.key
   </entry>
   <entry key="anyObject_search_adyngmemb">
     CREATE VIEW anyObject_search_adyngmemb AS
 
-    SELECT ds.anyObject_id AS any_id, d.group_id AS group_id
+    SELECT ds.anyObject_key AS any_key, d.group_key AS group_key
     FROM ADynGroupMembership d, ADynGroupMembership_AnyObject ds
-    WHERE d.id = ds.aDynGroupMembership_id
+    WHERE d.key = ds.aDynGroupMembership_key
   </entry>
   <entry key="anyObject_search_resource">
     CREATE VIEW anyObject_search_resource AS
 
-    SELECT st.anyObject_id AS any_id, st.resource_name AS resource_name
+    SELECT st.anyObject_key AS any_key, st.resource_key AS resource_key
     FROM AnyObject_ExternalResource st
   </entry>
   <entry key="anyObject_search_group_res">
     CREATE VIEW anyObject_search_group_res AS
 
-    SELECT m.anyObject_id AS any_id, st.resource_name AS resource_name
+    SELECT m.anyObject_key AS any_key, st.resource_key AS resource_key
     FROM AMembership m, SyncopeGroup r, SyncopeGroup_ExternalResource st
-    WHERE m.group_id = r.id AND st.group_id = r.id
+    WHERE m.group_key = r.key AND st.group_key = r.key
   </entry>
 
   <!-- group -->
   <entry key="group_search">
     CREATE VIEW group_search AS
  
-    SELECT r.id as any_id, r.* FROM SyncopeGroup r
+    SELECT r.key as any_key, r.* FROM SyncopeGroup r
   </entry>
   <entry key="group_search_unique_attr">
     CREATE VIEW group_search_unique_attr AS
 
-    SELECT ua.owner_id AS any_id,
-    ua.schema_name AS schema_name,
+    SELECT ua.owner_key AS any_key,
+    ua.schema_key AS schema_key,
     uav.booleanvalue AS booleanvalue,
     uav.datevalue AS datevalue,
     uav.doublevalue AS doublevalue,
     uav.longvalue AS longvalue,
     uav.stringvalue AS stringvalue
     FROM GPlainAttrUniqueValue uav, GPlainAttr ua
-    WHERE uav.attribute_id = ua.id
+    WHERE uav.attribute_key = ua.key
   </entry>
   <entry key="group_search_attr">
     CREATE VIEW group_search_attr AS
 
-    SELECT ua.owner_id AS any_id,
-    ua.schema_name AS schema_name,
+    SELECT ua.owner_key AS any_key,
+    ua.schema_key AS schema_key,
     uav.booleanvalue AS booleanvalue,
     uav.datevalue AS datevalue,
     uav.doublevalue AS doublevalue,
     uav.longvalue AS longvalue,
     uav.stringvalue AS stringvalue
     FROM GPlainAttrValue uav, GPlainAttr ua
-    WHERE uav.attribute_id = ua.id
+    WHERE uav.attribute_key = ua.key
   </entry>
   <entry key="group_search_null_attr">
     CREATE VIEW group_search_null_attr AS
 
-    SELECT u.id AS any_id,
-    PlainSchema.name AS schema_name,
+    SELECT u.key AS any_key,
+    PlainSchema.key AS schema_key,
     NULL AS booleanvalue,
     NULL AS datevalue,
     NULL AS doublevalue,
     NULL AS longvalue,
     NULL AS stringvalue
     FROM SyncopeGroup u CROSS JOIN PlainSchema
-    LEFT OUTER JOIN GPlainAttr ua ON (PlainSchema.name = ua.schema_name AND ua.owner_id = u.id)
-    WHERE ua.id IS NULL
+    LEFT OUTER JOIN GPlainAttr ua ON (PlainSchema.key = ua.schema_key AND ua.owner_key = u.key)
+    WHERE ua.key IS NULL
   </entry>
   <entry key="group_search_resource">
     CREATE VIEW group_search_resource AS
 
-    SELECT st.group_id AS any_id, st.resource_name AS resource_name
+    SELECT st.group_key AS any_key, st.resource_key AS resource_key
     FROM SyncopeGroup_ExternalResource st
   </entry>
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java
index 6ab3e01..f12e913 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnyObjectTest.java
@@ -53,7 +53,7 @@ public class AnyObjectTest extends AbstractTest {
 
     @Test
     public void find() {
-        AnyObject anyObject = anyObjectDAO.find(2L);
+        AnyObject anyObject = anyObjectDAO.find("8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         assertNotNull(anyObject);
         assertNotNull(anyObject.getType());
         assertFalse(anyObject.getType().getClasses().isEmpty());
@@ -63,7 +63,7 @@ public class AnyObjectTest extends AbstractTest {
     public void save() {
         AnyObject anyObject = entityFactory.newEntity(AnyObject.class);
         anyObject.setType(anyTypeDAO.find("PRINTER"));
-        anyObject.setRealm(realmDAO.find(SyncopeConstants.ROOT_REALM));
+        anyObject.setRealm(realmDAO.findByFullPath(SyncopeConstants.ROOT_REALM));
 
         anyObject = anyObjectDAO.save(anyObject);
         assertNotNull(anyObject);
@@ -71,10 +71,10 @@ public class AnyObjectTest extends AbstractTest {
 
     @Test
     public void delete() {
-        AnyObject anyObject = anyObjectDAO.find(2L);
+        AnyObject anyObject = anyObjectDAO.find("8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         anyObjectDAO.delete(anyObject.getKey());
 
-        AnyObject actual = anyObjectDAO.find(2L);
+        AnyObject actual = anyObjectDAO.find("8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         assertNull(actual);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java
index db26b96..fe7118e 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/AnySearchTest.java
@@ -73,11 +73,11 @@ public class AnySearchTest extends AbstractTest {
 
     @Test
     public void anyObjectMatch() {
-        AnyObject anyObject = anyObjectDAO.find(1L);
+        AnyObject anyObject = anyObjectDAO.find("fc6dbc3a-6c07-4965-8781-921e7401a4a5");
         assertNotNull(anyObject);
 
         RelationshipCond relationshipCond = new RelationshipCond();
-        relationshipCond.setAnyObjectKey(2L);
+        relationshipCond.setAnyObjectKey("8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         assertTrue(searchDAO.matches(anyObject, SearchCond.getLeafCond(relationshipCond), AnyTypeKind.ANY_OBJECT));
 
         RelationshipTypeCond relationshipTypeCond = new RelationshipTypeCond();
@@ -87,25 +87,25 @@ public class AnySearchTest extends AbstractTest {
 
     @Test
     public void userMatch() {
-        User user = userDAO.find(1L);
+        User user = userDAO.find("1417acbe-cbf6-4277-9372-e75e04f97000");
         assertNotNull(user);
 
         MembershipCond groupCond = new MembershipCond();
-        groupCond.setGroupKey(5L);
+        groupCond.setGroupKey("a3c1a693-a6be-483f-a2b3-5cfec146f4bf");
         assertFalse(searchDAO.matches(user, SearchCond.getLeafCond(groupCond), AnyTypeKind.USER));
 
-        groupCond.setGroupKey(1L);
+        groupCond.setGroupKey("37d15e4c-cdc1-460b-a591-8505c8133806");
         assertTrue(searchDAO.matches(user, SearchCond.getLeafCond(groupCond), AnyTypeKind.USER));
 
         RoleCond roleCond = new RoleCond();
         roleCond.setRoleKey("Other");
         assertTrue(searchDAO.matches(user, SearchCond.getLeafCond(roleCond), AnyTypeKind.USER));
 
-        user = userDAO.find(4L);
+        user = userDAO.find("c9b2dec2-00a7-4855-97c0-d854842b4b24");
         assertNotNull(user);
 
         RelationshipCond relationshipCond = new RelationshipCond();
-        relationshipCond.setAnyObjectKey(1L);
+        relationshipCond.setAnyObjectKey("fc6dbc3a-6c07-4965-8781-921e7401a4a5");
         assertTrue(searchDAO.matches(user, SearchCond.getLeafCond(relationshipCond), AnyTypeKind.USER));
 
         RelationshipTypeCond relationshipTypeCond = new RelationshipTypeCond();
@@ -115,7 +115,7 @@ public class AnySearchTest extends AbstractTest {
 
     @Test
     public void groupMatch() {
-        Group group = groupDAO.find(1L);
+        Group group = groupDAO.find("37d15e4c-cdc1-460b-a591-8505c8133806");
         assertNotNull(group);
 
         AttributeCond attrCond = new AttributeCond();
@@ -132,7 +132,7 @@ public class AnySearchTest extends AbstractTest {
         fullnameLeafCond.setExpression("%o%");
 
         MembershipCond groupCond = new MembershipCond();
-        groupCond.setGroupKey(1L);
+        groupCond.setGroupKey("37d15e4c-cdc1-460b-a591-8505c8133806");
 
         AttributeCond loginDateCond = new AttributeCond(AttributeCond.Type.EQ);
         loginDateCond.setSchema("loginDate");
@@ -165,12 +165,12 @@ public class AnySearchTest extends AbstractTest {
         assertNotNull(users);
         assertEquals(4, users.size());
 
-        Set<Long> ids = new HashSet<>(users.size());
+        Set<String> ids = new HashSet<>(users.size());
         for (User user : users) {
             ids.add(user.getKey());
         }
-        assertTrue(ids.contains(1L));
-        assertTrue(ids.contains(3L));
+        assertTrue(ids.contains("1417acbe-cbf6-4277-9372-e75e04f97000"));
+        assertTrue(ids.contains("b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee"));
     }
 
     @Test
@@ -186,7 +186,7 @@ public class AnySearchTest extends AbstractTest {
         assertNotNull(users);
         assertEquals(1, users.size());
 
-        assertEquals(Long.valueOf(4L), users.get(0).getKey());
+        assertEquals("c9b2dec2-00a7-4855-97c0-d854842b4b24", users.get(0).getKey());
     }
 
     @Test
@@ -196,7 +196,7 @@ public class AnySearchTest extends AbstractTest {
         fullnameLeafCond.setExpression("%o%");
 
         MembershipCond groupCond = new MembershipCond();
-        groupCond.setGroupKey(1L);
+        groupCond.setGroupKey("37d15e4c-cdc1-460b-a591-8505c8133806");
 
         AttributeCond loginDateCond = new AttributeCond(AttributeCond.Type.EQ);
         loginDateCond.setSchema("loginDate");
@@ -227,14 +227,14 @@ public class AnySearchTest extends AbstractTest {
     @Test
     public void searchByGroup() {
         MembershipCond groupCond = new MembershipCond();
-        groupCond.setGroupKey(1L);
+        groupCond.setGroupKey("37d15e4c-cdc1-460b-a591-8505c8133806");
 
         List<User> users = searchDAO.search(SearchCond.getLeafCond(groupCond), AnyTypeKind.USER);
         assertNotNull(users);
         assertEquals(2, users.size());
 
         groupCond = new MembershipCond();
-        groupCond.setGroupKey(5L);
+        groupCond.setGroupKey("a3c1a693-a6be-483f-a2b3-5cfec146f4bf");
 
         users = searchDAO.search(SearchCond.getNotLeafCond(groupCond), AnyTypeKind.USER);
         assertNotNull(users);
@@ -271,10 +271,10 @@ public class AnySearchTest extends AbstractTest {
     @Test
     public void searchByResource() {
         ResourceCond ws2 = new ResourceCond();
-        ws2.setResourceName("ws-target-resource-2");
+        ws2.setResourceKey("ws-target-resource-2");
 
         ResourceCond ws1 = new ResourceCond();
-        ws1.setResourceName("ws-target-resource-list-mappings-2");
+        ws1.setResourceKey("ws-target-resource-list-mappings-2");
 
         SearchCond searchCondition = SearchCond.getAndCond(SearchCond.getNotLeafCond(ws2), SearchCond.getLeafCond(ws1));
         assertTrue(searchCondition.isValid());
@@ -309,11 +309,11 @@ public class AnySearchTest extends AbstractTest {
                 SearchCond.getLeafCond(usernameLeafCond),
                 SearchCond.getLeafCond(idRightCond));
 
-        List<User> matchingUsers = searchDAO.search(searchCondition, AnyTypeKind.USER);
-        assertNotNull(matchingUsers);
-        assertEquals(1, matchingUsers.size());
-        assertEquals("rossini", matchingUsers.iterator().next().getUsername());
-        assertEquals(1L, matchingUsers.iterator().next().getKey(), 0);
+        List<User> matching = searchDAO.search(searchCondition, AnyTypeKind.USER);
+        assertNotNull(matching);
+        assertEquals(1, matching.size());
+        assertEquals("rossini", matching.iterator().next().getUsername());
+        assertEquals("1417acbe-cbf6-4277-9372-e75e04f97000", matching.iterator().next().getKey());
     }
 
     @Test
@@ -322,21 +322,21 @@ public class AnySearchTest extends AbstractTest {
         groupNameLeafCond.setSchema("name");
         groupNameLeafCond.setExpression("root");
 
-        AnyCond idRightCond = new AnyCond(AnyCond.Type.LT);
-        idRightCond.setSchema("key");
-        idRightCond.setExpression("2");
+        AnyCond keyRightCond = new AnyCond(AnyCond.Type.EQ);
+        keyRightCond.setSchema("key");
+        keyRightCond.setExpression("37d15e4c-cdc1-460b-a591-8505c8133806");
 
         SearchCond searchCondition = SearchCond.getAndCond(
                 SearchCond.getLeafCond(groupNameLeafCond),
-                SearchCond.getLeafCond(idRightCond));
+                SearchCond.getLeafCond(keyRightCond));
 
         assertTrue(searchCondition.isValid());
 
-        List<Group> matchingGroups = searchDAO.search(searchCondition, AnyTypeKind.GROUP);
-        assertNotNull(matchingGroups);
-        assertEquals(1, matchingGroups.size());
-        assertEquals("root", matchingGroups.iterator().next().getName());
-        assertEquals(1L, matchingGroups.iterator().next().getKey(), 0);
+        List<Group> matching = searchDAO.search(searchCondition, AnyTypeKind.GROUP);
+        assertNotNull(matching);
+        assertEquals(1, matching.size());
+        assertEquals("root", matching.iterator().next().getName());
+        assertEquals("37d15e4c-cdc1-460b-a591-8505c8133806", matching.iterator().next().getKey());
     }
 
     @Test
@@ -360,42 +360,24 @@ public class AnySearchTest extends AbstractTest {
     }
 
     @Test
-    public void searchById() {
-        AnyCond idLeafCond = new AnyCond(AnyCond.Type.LT);
-        idLeafCond.setSchema("id");
-        idLeafCond.setExpression("2");
+    public void searchByKey() {
+        AnyCond keyLeafCond = new AnyCond(AnyCond.Type.EQ);
+        keyLeafCond.setSchema("key");
+        keyLeafCond.setExpression("74cd8ece-715a-44a4-a736-e17b46c4e7e6");
 
-        SearchCond searchCondition = SearchCond.getLeafCond(idLeafCond);
+        SearchCond searchCondition = SearchCond.getLeafCond(keyLeafCond);
         assertTrue(searchCondition.isValid());
 
         List<User> users = searchDAO.search(searchCondition, AnyTypeKind.USER);
         assertNotNull(users);
         assertEquals(1, users.size());
-        assertEquals(1L, users.iterator().next().getKey(), 0);
-
-        idLeafCond = new AnyCond(AnyCond.Type.LT);
-        idLeafCond.setSchema("id");
-        idLeafCond.setExpression("4");
-
-        searchCondition = SearchCond.getNotLeafCond(idLeafCond);
-        assertTrue(searchCondition.isValid());
-
-        users = searchDAO.search(searchCondition, AnyTypeKind.USER);
-        assertNotNull(users);
-        assertEquals(2, users.size());
-        assertTrue(IterableUtils.matchesAny(users, new Predicate<User>() {
-
-            @Override
-            public boolean evaluate(User user) {
-                return user.getKey() == 4;
-            }
-        }));
+        assertEquals("74cd8ece-715a-44a4-a736-e17b46c4e7e6", users.iterator().next().getKey());
     }
 
     @Test
     public void searchByType() {
         AnyTypeCond tcond = new AnyTypeCond();
-        tcond.setAnyTypeName("PRINTER");
+        tcond.setAnyTypeKey("PRINTER");
 
         SearchCond searchCondition = SearchCond.getLeafCond(tcond);
         assertTrue(searchCondition.isValid());
@@ -404,7 +386,7 @@ public class AnySearchTest extends AbstractTest {
         assertNotNull(printers);
         assertEquals(3, printers.size());
 
-        tcond.setAnyTypeName("UNEXISTING");
+        tcond.setAnyTypeKey("UNEXISTING");
         printers = searchDAO.search(searchCondition, AnyTypeKind.ANY_OBJECT);
         assertNotNull(printers);
         assertTrue(printers.isEmpty());
@@ -417,7 +399,7 @@ public class AnySearchTest extends AbstractTest {
         relationshipTypeCond.setRelationshipTypeKey("neighborhood");
 
         AnyTypeCond tcond = new AnyTypeCond();
-        tcond.setAnyTypeName("PRINTER");
+        tcond.setAnyTypeKey("PRINTER");
 
         SearchCond searchCondition = SearchCond.getAndCond(
                 SearchCond.getLeafCond(relationshipTypeCond), SearchCond.getLeafCond(tcond));
@@ -430,14 +412,14 @@ public class AnySearchTest extends AbstractTest {
 
             @Override
             public boolean evaluate(final Any<?> any) {
-                return any.getKey() == 1L;
+                return "fc6dbc3a-6c07-4965-8781-921e7401a4a5".equals(any.getKey());
             }
         }));
         assertTrue(IterableUtils.matchesAny(matching, new Predicate<Any<?>>() {
 
             @Override
             public boolean evaluate(final Any<?> any) {
-                return any.getKey() == 2L;
+                return "8559d14d-58c2-46eb-a2d4-a7d35161e8f8".equals(any.getKey());
             }
         }));
 
@@ -445,12 +427,12 @@ public class AnySearchTest extends AbstractTest {
         searchCondition = SearchCond.getLeafCond(relationshipTypeCond);
         matching = searchDAO.search(searchCondition, AnyTypeKind.USER);
         assertNotNull(matching);
-        assertEquals(2, matching.size());
+        assertEquals(1, matching.size());
         assertTrue(IterableUtils.matchesAny(matching, new Predicate<Any<?>>() {
 
             @Override
             public boolean evaluate(final Any<?> any) {
-                return any.getKey() == 4L;
+                return "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(any.getKey());
             }
         }));
     }
@@ -512,14 +494,14 @@ public class AnySearchTest extends AbstractTest {
 
             @Override
             public boolean evaluate(final Group group) {
-                return group.getKey().equals(15L);
+                return "additional".equals(group.getName());
             }
         }));
         assertFalse(IterableUtils.matchesAny(groups, new Predicate<Group>() {
 
             @Override
             public boolean evaluate(final Group group) {
-                return group.getKey().equals(16L);
+                return "fake".equals(group.getName());
             }
         }));
 
@@ -533,7 +515,7 @@ public class AnySearchTest extends AbstractTest {
 
             @Override
             public boolean evaluate(final AnyObject anyObject) {
-                return anyObject.getKey().equals(3L);
+                return "9e1d130c-d6a3-48b1-98b3-182477ed0688".equals(anyObject.getKey());
             }
         }));
     }
@@ -541,10 +523,10 @@ public class AnySearchTest extends AbstractTest {
     @Test
     public void issue202() {
         ResourceCond ws2 = new ResourceCond();
-        ws2.setResourceName("ws-target-resource-2");
+        ws2.setResourceKey("ws-target-resource-2");
 
         ResourceCond ws1 = new ResourceCond();
-        ws1.setResourceName("ws-target-resource-list-mappings-1");
+        ws1.setResourceKey("ws-target-resource-list-mappings-1");
 
         SearchCond searchCondition =
                 SearchCond.getAndCond(SearchCond.getNotLeafCond(ws2), SearchCond.getNotLeafCond(ws1));
@@ -556,8 +538,8 @@ public class AnySearchTest extends AbstractTest {
         assertTrue(IterableUtils.matchesAny(users, new Predicate<User>() {
 
             @Override
-            public boolean evaluate(User user) {
-                return user.getKey() == 4;
+            public boolean evaluate(final User user) {
+                return "c9b2dec2-00a7-4855-97c0-d854842b4b24".equals(user.getKey());
             }
         }));
     }
@@ -565,7 +547,7 @@ public class AnySearchTest extends AbstractTest {
     @Test
     public void issue242() {
         AnyCond cond = new AnyCond(AttributeCond.Type.LIKE);
-        cond.setSchema("id");
+        cond.setSchema("key");
         cond.setExpression("test%");
 
         SearchCond searchCondition = SearchCond.getLeafCond(cond);

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConnInstanceTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConnInstanceTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConnInstanceTest.java
index 6033bd4..b8eb01a 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConnInstanceTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ConnInstanceTest.java
@@ -52,7 +52,7 @@ public class ConnInstanceTest extends AbstractTest {
 
     @Test
     public void findById() {
-        ConnInstance connectorInstance = connInstanceDAO.find(100L);
+        ConnInstance connectorInstance = connInstanceDAO.find("88a7a819-dab5-46b4-9b90-0b9769eabdb8");
 
         assertNotNull("findById did not work", connectorInstance);
 
@@ -82,7 +82,7 @@ public class ConnInstanceTest extends AbstractTest {
         connInstance.setConnRequestTimeout(60);
 
         // set the connector configuration using PropertyTO
-        Set<ConnConfProperty> conf = new HashSet<ConnConfProperty>();
+        Set<ConnConfProperty> conf = new HashSet<>();
 
         ConnConfPropSchema endpointSchema = new ConnConfPropSchema();
         endpointSchema.setName("endpoint");
@@ -112,8 +112,6 @@ public class ConnInstanceTest extends AbstractTest {
 
         assertNotNull("save did not work", actual.getKey());
 
-        assertTrue("save did not work", actual.getKey() > 100L);
-
         assertEquals("save did not work for \"name\" attribute", "WebService", actual.getConnectorName());
 
         assertEquals("save did not work for \"bundle name\" attribute", "org.apache.syncope.core.persistence.test.util",
@@ -134,12 +132,12 @@ public class ConnInstanceTest extends AbstractTest {
 
     @Test
     public void delete() {
-        ConnInstance connectorInstance = connInstanceDAO.find(100L);
+        ConnInstance connectorInstance = connInstanceDAO.find("88a7a819-dab5-46b4-9b90-0b9769eabdb8");
         assertNotNull("find to delete did not work", connectorInstance);
 
         connInstanceDAO.delete(connectorInstance.getKey());
 
-        ConnInstance actual = connInstanceDAO.find(100L);
+        ConnInstance actual = connInstanceDAO.find("88a7a819-dab5-46b4-9b90-0b9769eabdb8");
         assertNull("delete did not work", actual);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/GroupTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/GroupTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/GroupTest.java
index c4dba81..2d7e0ce 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/GroupTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/GroupTest.java
@@ -53,10 +53,10 @@ public class GroupTest extends AbstractTest {
 
     @Test
     public void find() {
-        Group group = groupDAO.find("root");
+        Group group = groupDAO.findByName("root");
         assertNotNull("did not find expected group", group);
 
-        group = groupDAO.find("additional");
+        group = groupDAO.findByName("additional");
         assertNotNull(group);
         assertEquals(1, group.getTypeExtensions().size());
         assertEquals(2, group.getTypeExtension(anyTypeDAO.findUser()).getAuxClasses().size());
@@ -66,7 +66,7 @@ public class GroupTest extends AbstractTest {
     public void save() {
         Group group = entityFactory.newEntity(Group.class);
         group.setName("secondChild");
-        group.setRealm(realmDAO.find(SyncopeConstants.ROOT_REALM));
+        group.setRealm(realmDAO.findByFullPath(SyncopeConstants.ROOT_REALM));
 
         group = groupDAO.save(group);
 
@@ -76,10 +76,10 @@ public class GroupTest extends AbstractTest {
 
     @Test
     public void delete() {
-        Group group = groupDAO.find(4L);
+        Group group = groupDAO.find("8fb2d51e-c605-4e80-a72b-13ffecf1aa9a");
         groupDAO.delete(group.getKey());
 
-        Group actual = groupDAO.find(4L);
+        Group actual = groupDAO.find("8fb2d51e-c605-4e80-a72b-13ffecf1aa9a");
         assertNull("delete did not work", actual);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/NotificationTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/NotificationTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/NotificationTest.java
index 4d88246..e9c7836 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/NotificationTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/NotificationTest.java
@@ -48,7 +48,7 @@ public class NotificationTest extends AbstractTest {
 
     @Test
     public void find() {
-        Notification notification = notificationDAO.find(10L);
+        Notification notification = notificationDAO.find("9e2b911c-25de-4c77-bcea-b86ed9451050");
         assertNotNull(notification);
         assertNotNull(notification.getEvents());
         assertFalse(notification.getEvents().isEmpty());
@@ -91,8 +91,8 @@ public class NotificationTest extends AbstractTest {
 
     @Test
     public void delete() {
-        notificationDAO.delete(10L);
-        assertNull(notificationDAO.find(10L));
+        notificationDAO.delete("9e2b911c-25de-4c77-bcea-b86ed9451050");
+        assertNull(notificationDAO.find("9e2b911c-25de-4c77-bcea-b86ed9451050"));
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java
index b033ecb..712aa51 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PlainAttrTest.java
@@ -59,16 +59,16 @@ public class PlainAttrTest extends AbstractTest {
     private PlainSchemaDAO plainSchemaDAO;
 
     @Test
-    public void findById() {
-        UPlainAttr attribute = plainAttrDAO.find(100L, UPlainAttr.class);
-        assertNotNull("did not find expected attribute schema", attribute);
-        attribute = plainAttrDAO.find(104L, UPlainAttr.class);
-        assertNotNull("did not find expected attribute schema", attribute);
+    public void findByKey() {
+        UPlainAttr attribute = plainAttrDAO.find("01f22fbd-b672-40af-b528-686d9b27ebc4", UPlainAttr.class);
+        assertNotNull("did not find expected attribute", attribute);
+        attribute = plainAttrDAO.find("9d0d9e40-1b18-488e-9482-37dab82163c9", UPlainAttr.class);
+        assertNotNull("did not find expected attribute", attribute);
     }
 
     @Test
     public void read() {
-        UPlainAttr attribute = plainAttrDAO.find(100L, UPlainAttr.class);
+        UPlainAttr attribute = plainAttrDAO.find("01f22fbd-b672-40af-b528-686d9b27ebc4", UPlainAttr.class);
         assertNotNull(attribute);
         assertTrue(attribute.getValues().isEmpty());
         assertNotNull(attribute.getUniqueValue());
@@ -76,7 +76,7 @@ public class PlainAttrTest extends AbstractTest {
 
     @Test
     public void save() throws ClassNotFoundException {
-        User user = userDAO.find(1L);
+        User user = userDAO.find("1417acbe-cbf6-4277-9372-e75e04f97000");
 
         PlainSchema emailSchema = plainSchemaDAO.find("email");
         assertNotNull(emailSchema);
@@ -104,7 +104,7 @@ public class PlainAttrTest extends AbstractTest {
 
     @Test
     public void saveWithEnum() throws ClassNotFoundException {
-        User user = userDAO.find(1L);
+        User user = userDAO.find("1417acbe-cbf6-4277-9372-e75e04f97000");
         assertNotNull(user);
 
         PlainSchema gender = plainSchemaDAO.find("gender");
@@ -138,7 +138,7 @@ public class PlainAttrTest extends AbstractTest {
 
     @Test
     public void validateAndSave() {
-        User user = userDAO.find(1L);
+        User user = userDAO.find("1417acbe-cbf6-4277-9372-e75e04f97000");
 
         PlainSchema emailSchema = plainSchemaDAO.find("email");
         assertNotNull(emailSchema);
@@ -175,7 +175,7 @@ public class PlainAttrTest extends AbstractTest {
 
     @Test
     public void saveWithEncrypted() throws Exception {
-        User user = userDAO.find(1L);
+        User user = userDAO.find("1417acbe-cbf6-4277-9372-e75e04f97000");
 
         PlainSchema obscureSchema = plainSchemaDAO.find("obscure");
         assertNotNull(obscureSchema);
@@ -199,7 +199,7 @@ public class PlainAttrTest extends AbstractTest {
 
     @Test
     public void saveWithBinary() throws UnsupportedEncodingException {
-        User user = userDAO.find(1L);
+        User user = userDAO.find("1417acbe-cbf6-4277-9372-e75e04f97000");
 
         PlainSchema photoSchema = plainSchemaDAO.find("photo");
         assertNotNull(photoSchema);
@@ -225,7 +225,8 @@ public class PlainAttrTest extends AbstractTest {
 
     @Test
     public void delete() {
-        UPlainAttr attribute = plainAttrDAO.find(104L, UPlainAttr.class);
+        UPlainAttr attribute = plainAttrDAO.find(
+                "9d0d9e40-1b18-488e-9482-37dab82163c9", UPlainAttr.class);
         String attrSchemaName = attribute.getSchema().getKey();
 
         plainAttrDAO.delete(attribute.getKey(), UPlainAttr.class);

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PolicyTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PolicyTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PolicyTest.java
index a3be9bb..1086d3e 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PolicyTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/PolicyTest.java
@@ -58,7 +58,7 @@ public class PolicyTest extends AbstractTest {
 
     @Test
     public void findByKey() {
-        PullPolicy policy = policyDAO.find(3L);
+        PullPolicy policy = policyDAO.find("880f8553-069b-4aed-9930-2cd53873f544");
         assertNotNull("findById did not work", policy);
 
         PullPolicySpec spec = policy.getSpecification();
@@ -110,7 +110,7 @@ public class PolicyTest extends AbstractTest {
         ruleConf.setMaxLength(8);
         ruleConf.setMinLength(6);
 
-        PasswordPolicy policy = policyDAO.find(2L);
+        PasswordPolicy policy = policyDAO.find("ce93fcda-dc3a-4369-a7b0-a6108c261c85");
         assertNotNull(policy);
         assertEquals(1, policy.getRuleConfs().size());
         policy.add(ruleConf);
@@ -124,12 +124,12 @@ public class PolicyTest extends AbstractTest {
 
     @Test
     public void delete() {
-        Policy policy = policyDAO.find(1L);
+        Policy policy = policyDAO.find("66691e96-285f-4464-bc19-e68384ea4c85");
         assertNotNull("find to delete did not work", policy);
 
         policyDAO.delete(policy);
 
-        Policy actual = policyDAO.find(1L);
+        Policy actual = policyDAO.find("66691e96-285f-4464-bc19-e68384ea4c85");
         assertNull("delete did not work", actual);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RealmTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RealmTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RealmTest.java
index 0fa7c35..63620cb 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RealmTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RealmTest.java
@@ -57,38 +57,38 @@ public class RealmTest extends AbstractTest {
 
     @Test
     public void find() {
-        Realm realm = realmDAO.find(1L);
+        Realm realm = realmDAO.find("e4c28e7a-9dbf-4ee7-9441-93812a0d4a28");
         assertNotNull(realm);
         assertEquals(SyncopeConstants.ROOT_REALM, realm.getName());
         assertEquals(SyncopeConstants.ROOT_REALM, realm.getFullPath());
 
-        realm = realmDAO.find(3L);
+        realm = realmDAO.find("c5b75db1-fce7-470f-b780-3b9934d82a9d");
         assertNotNull(realm);
         assertEquals("even", realm.getName());
         assertEquals("/even", realm.getFullPath());
-        assertEquals(1, realm.getParent().getKey(), 0);
+        assertEquals("e4c28e7a-9dbf-4ee7-9441-93812a0d4a28", realm.getParent().getKey());
         assertEquals(realmDAO.getRoot(), realm.getParent());
 
-        realm = realmDAO.find("/even/two");
+        realm = realmDAO.findByFullPath("/even/two");
         assertNotNull(realm);
-        assertEquals(4, realm.getKey(), 0);
+        assertEquals("0679e069-7355-4b20-bd11-a5a0a5453c7c", realm.getKey());
         assertEquals("two", realm.getName());
         assertEquals("/even/two", realm.getFullPath());
     }
 
     @Test(expected = MalformedPathException.class)
     public void findInvalidPath() {
-        realmDAO.find("even/two");
+        realmDAO.findByFullPath("even/two");
     }
 
     @Test
     public void findChildren() {
-        List<Realm> children = realmDAO.findChildren(realmDAO.find(SyncopeConstants.ROOT_REALM));
+        List<Realm> children = realmDAO.findChildren(realmDAO.findByFullPath(SyncopeConstants.ROOT_REALM));
         assertEquals(2, children.size());
-        assertTrue(children.contains(realmDAO.find("/odd")));
-        assertTrue(children.contains(realmDAO.find("/even")));
+        assertTrue(children.contains(realmDAO.findByFullPath("/odd")));
+        assertTrue(children.contains(realmDAO.findByFullPath("/even")));
 
-        children = realmDAO.findChildren(realmDAO.find("/odd"));
+        children = realmDAO.findChildren(realmDAO.findByFullPath("/odd"));
         assertTrue(children.isEmpty());
     }
 
@@ -112,24 +112,26 @@ public class RealmTest extends AbstractTest {
     public void save() {
         Realm realm = entityFactory.newEntity(Realm.class);
         realm.setName("last");
-        realm.setParent(realmDAO.find("/even/two"));
+        realm.setParent(realmDAO.findByFullPath("/even/two"));
         assertNull(realm.getKey());
 
         Realm actual = realmDAO.save(realm);
         assertNotNull(actual.getKey());
         assertEquals("last", actual.getName());
         assertEquals("/even/two/last", actual.getFullPath());
-        assertEquals(realmDAO.find("/even/two"), actual.getParent());
-        assertEquals(5L, realm.getAccountPolicy().getKey(), 0);
-        assertEquals(2L, realm.getPasswordPolicy().getKey(), 0);
+        assertEquals(realmDAO.findByFullPath("/even/two"), actual.getParent());
+        assertEquals("20ab5a8c-4b0c-432c-b957-f7fb9784d9f7", realm.getAccountPolicy().getKey());
+        assertEquals("ce93fcda-dc3a-4369-a7b0-a6108c261c85", realm.getPasswordPolicy().getKey());
 
         realm = actual;
-        realm.setAccountPolicy((AccountPolicy) policyDAO.find(6L));
-        realm.setPasswordPolicy((PasswordPolicy) policyDAO.find(4L));
+        realm.setAccountPolicy(
+                (AccountPolicy) policyDAO.find("06e2ed52-6966-44aa-a177-a0ca7434201f"));
+        realm.setPasswordPolicy(
+                (PasswordPolicy) policyDAO.find("986d1236-3ac5-4a19-810c-5ab21d79cba1"));
 
         actual = realmDAO.save(realm);
-        assertEquals(6L, actual.getAccountPolicy().getKey(), 0);
-        assertEquals(4L, actual.getPasswordPolicy().getKey(), 0);
+        assertEquals("06e2ed52-6966-44aa-a177-a0ca7434201f", actual.getAccountPolicy().getKey());
+        assertEquals("986d1236-3ac5-4a19-810c-5ab21d79cba1", actual.getPasswordPolicy().getKey());
     }
 
     @Test
@@ -169,7 +171,7 @@ public class RealmTest extends AbstractTest {
         Realm actual = realmDAO.save(realm);
         assertNotNull(actual);
 
-        Long key = actual.getKey();
+        String key = actual.getKey();
         assertNotNull(realmDAO.find(key));
 
         realmDAO.delete(key);

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RelationshipTypeTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RelationshipTypeTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RelationshipTypeTest.java
index 0a16023..3a54a17 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RelationshipTypeTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RelationshipTypeTest.java
@@ -25,6 +25,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.List;
+import java.util.UUID;
 import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
 import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
 import org.apache.syncope.core.persistence.api.dao.RelationshipTypeDAO;
@@ -89,7 +90,7 @@ public class RelationshipTypeTest extends AbstractTest {
         RelationshipType neighborhood = relationshipTypeDAO.find("neighborhood");
         assertNotNull(neighborhood);
 
-        AnyObject anyObject = anyObjectDAO.find(1L);
+        AnyObject anyObject = anyObjectDAO.find("fc6dbc3a-6c07-4965-8781-921e7401a4a5");
         assertNotNull(anyObject);
         assertNotNull(anyObject.getRelationships(neighborhood));
         assertFalse(anyObject.getRelationships(neighborhood).isEmpty());
@@ -98,7 +99,7 @@ public class RelationshipTypeTest extends AbstractTest {
 
         relationshipTypeDAO.flush();
 
-        anyObject = anyObjectDAO.find(1L);
+        anyObject = anyObjectDAO.find("fc6dbc3a-6c07-4965-8781-921e7401a4a5");
         assertNotNull(anyObject);
         assertTrue(anyObject.getRelationships().isEmpty());
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ReportTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ReportTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ReportTest.java
index a009f42..e34b8b3 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ReportTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ReportTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
 import java.util.List;
+import java.util.UUID;
 import org.apache.syncope.common.lib.report.UserReportletConf;
 import org.apache.syncope.core.persistence.api.dao.ReportDAO;
 import org.apache.syncope.core.persistence.api.dao.ReportTemplateDAO;
@@ -43,10 +44,10 @@ public class ReportTest extends AbstractTest {
 
     @Test
     public void find() {
-        Report report = reportDAO.find(1L);
+        Report report = reportDAO.find("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
         assertNotNull(report);
 
-        report = reportDAO.find(10L);
+        report = reportDAO.find(UUID.randomUUID().toString());
         assertNull(report);
     }
 
@@ -78,12 +79,12 @@ public class ReportTest extends AbstractTest {
 
     @Test
     public void delete() {
-        Report report = reportDAO.find(1L);
+        Report report = reportDAO.find("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
         assertNotNull(report);
 
-        reportDAO.delete(1L);
+        reportDAO.delete("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
 
-        report = reportDAO.find(1L);
+        report = reportDAO.find("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
         assertNull(report);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ResourceTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ResourceTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ResourceTest.java
index 828ce6c..19451e9 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ResourceTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/ResourceTest.java
@@ -26,6 +26,7 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.util.List;
+import java.util.UUID;
 import org.apache.commons.collections4.IterableUtils;
 import org.apache.commons.collections4.Predicate;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
@@ -73,7 +74,7 @@ public class ResourceTest extends AbstractTest {
 
             @Override
             public boolean evaluate(final MappingItem item) {
-                return 100 == item.getKey();
+                return "7f55b09c-b573-41dc-a9eb-ccd80bd3ea7a".equals(item.getKey());
             }
         }));
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RoleTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RoleTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RoleTest.java
index ce2039a..2b230c0 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RoleTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/RoleTest.java
@@ -68,7 +68,7 @@ public class RoleTest extends AbstractTest {
         Role role = entityFactory.newEntity(Role.class);
         role.setKey("new");
         role.add(realmDAO.getRoot());
-        role.add(realmDAO.find("/even/two"));
+        role.add(realmDAO.findByFullPath("/even/two"));
         role.getEntitlements().add(StandardEntitlement.LOG_LIST);
         role.getEntitlements().add(StandardEntitlement.LOG_SET_LEVEL);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/SecurityQuestionTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/SecurityQuestionTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/SecurityQuestionTest.java
index 08466b1..7a84762 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/SecurityQuestionTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/SecurityQuestionTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
 import java.util.List;
+import java.util.UUID;
 import org.apache.syncope.core.persistence.api.dao.SecurityQuestionDAO;
 import org.apache.syncope.core.persistence.api.entity.user.SecurityQuestion;
 import org.apache.syncope.core.persistence.jpa.AbstractTest;
@@ -38,7 +39,8 @@ public class SecurityQuestionTest extends AbstractTest {
 
     @Test
     public void find() {
-        SecurityQuestion securityQuestion = securityQuestionDAO.find(1L);
+        SecurityQuestion securityQuestion = securityQuestionDAO.find(
+                "887028ea-66fc-41e7-b397-620d7ea6dfbb");
         assertNotNull(securityQuestion);
         assertNotNull(securityQuestion.getContent());
     }
@@ -62,7 +64,7 @@ public class SecurityQuestionTest extends AbstractTest {
 
     @Test
     public void delete() {
-        securityQuestionDAO.delete(1L);
-        assertNull(securityQuestionDAO.find(1L));
+        securityQuestionDAO.delete("887028ea-66fc-41e7-b397-620d7ea6dfbb");
+        assertNull(securityQuestionDAO.find("887028ea-66fc-41e7-b397-620d7ea6dfbb"));
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskExecTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskExecTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskExecTest.java
index 469816c..df08139 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskExecTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskExecTest.java
@@ -45,7 +45,7 @@ public class TaskExecTest extends AbstractTest {
 
     @Test
     public void findAll() {
-        PropagationTask task = taskDAO.find(1L);
+        PropagationTask task = taskDAO.find("1e697572-b896-484c-ae7f-0c8f63fcbc6c");
         assertNotNull(task);
 
         Calendar calendar = Calendar.getInstance();
@@ -59,17 +59,17 @@ public class TaskExecTest extends AbstractTest {
 
     @Test
     public void findLatestStarted() {
-        PropagationTask task = taskDAO.find(1L);
+        PropagationTask task = taskDAO.find("1e697572-b896-484c-ae7f-0c8f63fcbc6c");
         assertNotNull(task);
 
         TaskExec latestStarted = taskExecDAO.findLatestStarted(task);
         assertNotNull(latestStarted);
-        assertEquals(Long.valueOf(1L), latestStarted.getKey());
+        assertEquals("e58ca1c7-178a-4012-8a71-8aa14eaf0655", latestStarted.getKey());
     }
 
     @Test
     public void issueSYNCOPE214() {
-        PropagationTask task = taskDAO.find(1L);
+        PropagationTask task = taskDAO.find("1e697572-b896-484c-ae7f-0c8f63fcbc6c");
         assertNotNull(task);
 
         String faultyMessage = "A faulty message";

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java
index d0675db..ca11c3f 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/TaskTest.java
@@ -107,7 +107,7 @@ public class TaskTest extends AbstractTest {
         ExternalResource resource = resourceDAO.find("ws-target-resource-1");
         assertNotNull(resource);
 
-        User user = userDAO.find(2L);
+        User user = userDAO.find("74cd8ece-715a-44a4-a736-e17b46c4e7e6");
         assertNotNull(user);
 
         PropagationTask task = entityFactory.newEntity(PropagationTask.class);
@@ -131,14 +131,14 @@ public class TaskTest extends AbstractTest {
 
     @Test
     public void delete() {
-        PropagationTask task = taskDAO.find(1L);
+        PropagationTask task = taskDAO.find("1e697572-b896-484c-ae7f-0c8f63fcbc6c");
         assertNotNull(task);
 
         ExternalResource resource = task.getResource();
         assertNotNull(resource);
 
         taskDAO.delete(task);
-        task = taskDAO.find(1L);
+        task = taskDAO.find("1e697572-b896-484c-ae7f-0c8f63fcbc6c");
         assertNull(task);
 
         resource = resourceDAO.find(resource.getKey());

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/UserTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/UserTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/UserTest.java
index 810534b..730a6c2 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/UserTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/inner/UserTest.java
@@ -26,6 +26,7 @@ import static org.junit.Assert.fail;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.UUID;
 import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.syncope.common.lib.types.CipherAlgorithm;
 import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
@@ -121,22 +122,18 @@ public class UserTest extends AbstractTest {
     }
 
     @Test
-    public void findById() {
-        User user = userDAO.find(1L);
+    public void findByKey() {
+        User user = userDAO.find("1417acbe-cbf6-4277-9372-e75e04f97000");
         assertNotNull("did not find expected user", user);
-        user = userDAO.find(3L);
-        assertNotNull("did not find expected user", user);
-        user = userDAO.find(6L);
-        assertNull("found user but did not expect it", user);
     }
 
     @Test
     public void findByUsername() {
-        User user = userDAO.find("rossini");
+        User user = userDAO.findByUsername("rossini");
         assertNotNull("did not find expected user", user);
-        user = userDAO.find("vivaldi");
+        user = userDAO.findByUsername("vivaldi");
         assertNotNull("did not find expected user", user);
-        user = userDAO.find("user6");
+        user = userDAO.findByUsername("user6");
         assertNull("found user but did not expect it", user);
     }
 
@@ -144,7 +141,7 @@ public class UserTest extends AbstractTest {
     public void save() {
         User user = entityFactory.newEntity(User.class);
         user.setUsername("username");
-        user.setRealm(realmDAO.find("/even/two"));
+        user.setRealm(realmDAO.findByFullPath("/even/two"));
         user.setCreator("admin");
         user.setCreationDate(new Date());
 
@@ -177,11 +174,11 @@ public class UserTest extends AbstractTest {
 
     @Test
     public void delete() {
-        User user = userDAO.find(3L);
+        User user = userDAO.find("b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee");
 
         userDAO.delete(user.getKey());
 
-        User actual = userDAO.find(3L);
+        User actual = userDAO.find("b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee");
         assertNull("delete did not work", actual);
     }
 
@@ -189,7 +186,7 @@ public class UserTest extends AbstractTest {
     public void issue237() {
         User user = entityFactory.newEntity(User.class);
         user.setUsername("username");
-        user.setRealm(realmDAO.find("/even/two"));
+        user.setRealm(realmDAO.findByFullPath("/even/two"));
         user.setCreator("admin");
         user.setCreationDate(new Date());
 
@@ -204,7 +201,7 @@ public class UserTest extends AbstractTest {
         User user = entityFactory.newEntity(User.class);
         user.setUsername("username");
         user.setPassword(null, CipherAlgorithm.AES);
-        user.setRealm(realmDAO.find("/even/two"));
+        user.setRealm(realmDAO.findByFullPath("/even/two"));
 
         User actual = userDAO.save(user);
         assertNull(user.getPassword());
@@ -213,7 +210,7 @@ public class UserTest extends AbstractTest {
 
     @Test
     public void issueSYNCOPE226() {
-        User user = userDAO.find(5L);
+        User user = userDAO.find("823074dc-d280-436d-a7dd-07399fae48ec");
         String password = "";
         try {
             password = passwordGenerator.generate(user);
@@ -230,7 +227,7 @@ public class UserTest extends AbstractTest {
 
     @Test
     public void testPasswordGenerator() {
-        User user = userDAO.find(5L);
+        User user = userDAO.find("823074dc-d280-436d-a7dd-07399fae48ec");
 
         String password = "";
         try {

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/AnySearchTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/AnySearchTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/AnySearchTest.java
index d000884..17c45ba 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/AnySearchTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/AnySearchTest.java
@@ -77,7 +77,7 @@ public class AnySearchTest extends AbstractTest {
         assertNotNull(users);
         assertEquals(1, users.size());
 
-        assertEquals(4L, users.get(0).getKey(), 0);
+        assertEquals("c9b2dec2-00a7-4855-97c0-d854842b4b24", users.get(0).getKey());
     }
 
     @Test
@@ -86,7 +86,7 @@ public class AnySearchTest extends AbstractTest {
         Role role = entityFactory.newEntity(Role.class);
         role.setKey("new");
         role.add(realmDAO.getRoot());
-        role.add(realmDAO.find("/even/two"));
+        role.add(realmDAO.findByFullPath("/even/two"));
         role.getEntitlements().add(StandardEntitlement.LOG_LIST);
         role.getEntitlements().add(StandardEntitlement.LOG_SET_LEVEL);
 
@@ -108,6 +108,6 @@ public class AnySearchTest extends AbstractTest {
         List<User> users = searchDAO.search(SearchCond.getLeafCond(roleCond), AnyTypeKind.USER);
         assertNotNull(users);
         assertEquals(1, users.size());
-        assertEquals(4L, users.get(0).getKey(), 0);
+        assertEquals("c9b2dec2-00a7-4855-97c0-d854842b4b24", users.get(0).getKey());
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ConnInstanceTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ConnInstanceTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ConnInstanceTest.java
index f557e8c..e0794f8 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ConnInstanceTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ConnInstanceTest.java
@@ -25,6 +25,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.List;
+import java.util.UUID;
 import org.apache.syncope.common.lib.types.ConnectorCapability;
 import org.apache.syncope.core.persistence.api.dao.ConnInstanceDAO;
 import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
@@ -46,7 +47,7 @@ public class ConnInstanceTest extends AbstractTest {
 
     @Test
     public void deleteCascade() {
-        ConnInstance connInstance = connInstanceDAO.find(103L);
+        ConnInstance connInstance = connInstanceDAO.find("fcf9f2b0-f7d6-42c9-84a6-61b28255a42b");
         assertNotNull(connInstance);
 
         List<? extends ExternalResource> resources = connInstance.getResources();
@@ -57,7 +58,7 @@ public class ConnInstanceTest extends AbstractTest {
 
         connInstanceDAO.flush();
 
-        ConnInstance actual = connInstanceDAO.find(103L);
+        ConnInstance actual = connInstanceDAO.find("fcf9f2b0-f7d6-42c9-84a6-61b28255a42b");
         assertNull(actual);
 
         for (ExternalResource resource : resources) {
@@ -65,14 +66,9 @@ public class ConnInstanceTest extends AbstractTest {
         }
     }
 
-    /**
-     * Connector change used to miss connector bean registration.
-     *
-     * http://code.google.com/p/syncope/issues/detail?id=176
-     */
     @Test
     public void issue176() {
-        ConnInstance connInstance = connInstanceDAO.find(103L);
+        ConnInstance connInstance = connInstanceDAO.find("fcf9f2b0-f7d6-42c9-84a6-61b28255a42b");
         assertNotNull(connInstance);
         assertTrue(connInstance.getCapabilities().isEmpty());
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/GroupTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/GroupTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/GroupTest.java
index 7c7df15..ae450aa 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/GroupTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/GroupTest.java
@@ -91,10 +91,10 @@ public class GroupTest extends AbstractTest {
 
     @Test(expected = InvalidEntityException.class)
     public void saveWithTwoOwners() {
-        Group root = groupDAO.find("root");
+        Group root = groupDAO.findByName("root");
         assertNotNull("did not find expected group", root);
 
-        User user = userDAO.find(1L);
+        User user = userDAO.findByUsername("rossini");
         assertNotNull("did not find expected user", user);
 
         Group group = entityFactory.newEntity(Group.class);
@@ -108,10 +108,10 @@ public class GroupTest extends AbstractTest {
 
     @Test
     public void findByOwner() {
-        Group group = groupDAO.find(6L);
+        Group group = groupDAO.find("ebf97068-aa4b-4a85-9f01-680e8c4cf227");
         assertNotNull("did not find expected group", group);
 
-        User user = userDAO.find(5L);
+        User user = userDAO.find("823074dc-d280-436d-a7dd-07399fae48ec");
         assertNotNull("did not find expected user", user);
 
         assertEquals(user, group.getUserOwner());
@@ -140,7 +140,7 @@ public class GroupTest extends AbstractTest {
 
         groupDAO.flush();
 
-        group = groupDAO.find("new");
+        group = groupDAO.findByName("new");
         assertNotNull(group);
         assertEquals(1, group.getTypeExtensions().size());
         assertEquals(2, group.getTypeExtension(anyTypeDAO.findUser()).getAuxClasses().size());
@@ -148,14 +148,16 @@ public class GroupTest extends AbstractTest {
 
     @Test
     public void delete() {
-        groupDAO.delete(2L);
+        groupDAO.delete("b1f7c12d-ec83-441f-a50e-1691daaedf3b");
 
         groupDAO.flush();
 
-        assertNull(groupDAO.find(2L));
-        assertEquals(userDAO.findAllGroups(userDAO.find(2L)).size(), 2);
-        assertNull(plainAttrDAO.find(700L, GPlainAttr.class));
-        assertNull(plainAttrValueDAO.find(41L, GPlainAttrValue.class));
+        assertNull(groupDAO.find("b1f7c12d-ec83-441f-a50e-1691daaedf3b"));
+        assertEquals(userDAO.findAllGroups(userDAO.findByUsername("verdi")).size(), 2);
+        assertNull(plainAttrDAO.find(
+                "f82fc61f-8e74-4a4b-9f9e-b8a41f38aad9", GPlainAttr.class));
+        assertNull(plainAttrValueDAO.find(
+                "49f35879-2510-4f11-a901-24152f753538", GPlainAttrValue.class));
         assertNotNull(plainSchemaDAO.find("icon"));
     }
 
@@ -178,7 +180,7 @@ public class GroupTest extends AbstractTest {
         // 0. create user matching the condition below
         User user = entityFactory.newEntity(User.class);
         user.setUsername("username");
-        user.setRealm(realmDAO.find("/even/two"));
+        user.setRealm(realmDAO.findByFullPath("/even/two"));
         user.add(anyTypeClassDAO.find("other"));
 
         UPlainAttr attr = entityFactory.newEntity(UPlainAttr.class);
@@ -188,7 +190,7 @@ public class GroupTest extends AbstractTest {
         user.add(attr);
 
         user = userDAO.save(user);
-        Long newUserKey = user.getKey();
+        String newUserKey = user.getKey();
         assertNotNull(newUserKey);
 
         // 1. create group with dynamic membership
@@ -216,12 +218,12 @@ public class GroupTest extends AbstractTest {
 
         // 3. verify that expected users have the created group dynamically assigned
         assertEquals(2, actual.getUDynMembership().getMembers().size());
-        assertEquals(new HashSet<>(Arrays.asList(4L, newUserKey)),
+        assertEquals(new HashSet<>(Arrays.asList("c9b2dec2-00a7-4855-97c0-d854842b4b24", newUserKey)),
                 CollectionUtils.collect(actual.getUDynMembership().getMembers(),
-                        EntityUtils.<Long, User>keyTransformer(),
-                        new HashSet<Long>()));
+                        EntityUtils.<User>keyTransformer(),
+                        new HashSet<String>()));
 
-        user = userDAO.find(4L);
+        user = userDAO.findByUsername("bellini");
         assertNotNull(user);
         Collection<Group> dynGroupMemberships = findDynGroupMemberships(user);
         assertEquals(1, dynGroupMemberships.size());
@@ -234,10 +236,12 @@ public class GroupTest extends AbstractTest {
 
         actual = groupDAO.find(actual.getKey());
         assertEquals(1, actual.getUDynMembership().getMembers().size());
-        assertEquals(4L, actual.getUDynMembership().getMembers().get(0).getKey(), 0);
+        assertEquals(
+                "c9b2dec2-00a7-4855-97c0-d854842b4b24",
+                actual.getUDynMembership().getMembers().get(0).getKey());
 
         // 5. delete group and verify that dynamic membership was also removed
-        Long dynMembershipKey = actual.getUDynMembership().getKey();
+        String dynMembershipKey = actual.getUDynMembership().getKey();
 
         groupDAO.delete(actual);
 
@@ -268,7 +272,7 @@ public class GroupTest extends AbstractTest {
         // 0. create any object matching the condition below
         AnyObject anyObject = entityFactory.newEntity(AnyObject.class);
         anyObject.setType(anyTypeDAO.find("PRINTER"));
-        anyObject.setRealm(realmDAO.find("/even/two"));
+        anyObject.setRealm(realmDAO.findByFullPath("/even/two"));
 
         APlainAttr attr = entityFactory.newEntity(APlainAttr.class);
         attr.setOwner(anyObject);
@@ -277,7 +281,7 @@ public class GroupTest extends AbstractTest {
         anyObject.add(attr);
 
         anyObject = anyObjectDAO.save(anyObject);
-        Long newAnyObjectKey = anyObject.getKey();
+        String newAnyObjectKey = anyObject.getKey();
         assertNotNull(newAnyObjectKey);
 
         // 1. create group with dynamic membership
@@ -306,12 +310,13 @@ public class GroupTest extends AbstractTest {
 
         // 3. verify that expected any objects have the created group dynamically assigned
         assertEquals(2, actual.getADynMembership(anyTypeDAO.find("PRINTER")).getMembers().size());
-        assertEquals(new HashSet<>(Arrays.asList(1L, newAnyObjectKey)),
+        assertEquals(new HashSet<>(Arrays.asList(
+                "fc6dbc3a-6c07-4965-8781-921e7401a4a5", newAnyObjectKey)),
                 CollectionUtils.collect(actual.getADynMembership(anyTypeDAO.find("PRINTER")).getMembers(),
-                        EntityUtils.<Long, AnyObject>keyTransformer(),
-                        new HashSet<Long>()));
+                        EntityUtils.<AnyObject>keyTransformer(),
+                        new HashSet<String>()));
 
-        anyObject = anyObjectDAO.find(1L);
+        anyObject = anyObjectDAO.find("fc6dbc3a-6c07-4965-8781-921e7401a4a5");
         assertNotNull(anyObject);
         Collection<Group> dynGroupMemberships = findDynGroupMemberships(anyObject);
         assertEquals(1, dynGroupMemberships.size());
@@ -324,10 +329,12 @@ public class GroupTest extends AbstractTest {
 
         actual = groupDAO.find(actual.getKey());
         assertEquals(1, actual.getADynMembership(anyTypeDAO.find("PRINTER")).getMembers().size());
-        assertEquals(1L, actual.getADynMembership(anyTypeDAO.find("PRINTER")).getMembers().get(0).getKey(), 0);
+        assertEquals(
+                "fc6dbc3a-6c07-4965-8781-921e7401a4a5",
+                actual.getADynMembership(anyTypeDAO.find("PRINTER")).getMembers().get(0).getKey());
 
         // 5. delete group and verify that dynamic membership was also removed
-        Long dynMembershipKey = actual.getADynMembership(anyTypeDAO.find("PRINTER")).getKey();
+        String dynMembershipKey = actual.getADynMembership(anyTypeDAO.find("PRINTER")).getKey();
 
         groupDAO.delete(actual);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainAttrTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainAttrTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainAttrTest.java
index 331c4ca..456076c 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainAttrTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainAttrTest.java
@@ -41,17 +41,19 @@ public class PlainAttrTest extends AbstractTest {
 
     @Test
     public void deleteAttribute() {
-        plainAttrDAO.delete(117L, UPlainAttr.class);
+        plainAttrDAO.delete("35f407a2-d254-4890-9e45-5a7dd8c8df7d", UPlainAttr.class);
 
         plainAttrDAO.flush();
 
-        assertNull(plainAttrDAO.find(117L, UPlainAttr.class));
-        assertNull(plainAttrValueDAO.find(28L, UPlainAttrValue.class));
+        assertNull(plainAttrDAO.find("35f407a2-d254-4890-9e45-5a7dd8c8df7d", UPlainAttr.class));
+        assertNull(
+                plainAttrValueDAO.find("0c67225a-030a-4c56-b337-17cf7a311f0f", UPlainAttrValue.class));
     }
 
     @Test
     public void deleteAttributeValue() {
-        UPlainAttrValue value = plainAttrValueDAO.find(14L, UPlainAttrValue.class);
+        UPlainAttrValue value = plainAttrValueDAO.find(
+                "7034de3b-3687-4db5-8454-363468f1a9de", UPlainAttrValue.class);
         int attributeValueNumber = value.getAttr().getValues().size();
 
         plainAttrValueDAO.delete(value.getKey(), UPlainAttrValue.class);
@@ -60,7 +62,8 @@ public class PlainAttrTest extends AbstractTest {
 
         assertNull(plainAttrValueDAO.find(value.getKey(), UPlainAttrValue.class));
 
-        UPlainAttr attribute = plainAttrDAO.find(104L, UPlainAttr.class);
+        UPlainAttr attribute = plainAttrDAO.find(
+                "9d0d9e40-1b18-488e-9482-37dab82163c9", UPlainAttr.class);
         assertEquals(attribute.getValues().size(), attributeValueNumber - 1);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java
index a484ac7..1c3ad04 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/PlainSchemaTest.java
@@ -26,6 +26,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.HashSet;
 import java.util.Set;
+import java.util.UUID;
 import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
 import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
 import org.apache.syncope.core.persistence.api.dao.PlainAttrDAO;
@@ -117,10 +118,10 @@ public class PlainSchemaTest extends AbstractTest {
         }
         assertTrue(mapItems.isEmpty());
 
-        assertNull(plainAttrDAO.find(100L, UPlainAttr.class));
-        assertNull(plainAttrDAO.find(300L, UPlainAttr.class));
-        assertNull(userDAO.find(1L).getPlainAttr("fullname"));
-        assertNull(userDAO.find(3L).getPlainAttr("fullname"));
+        assertNull(plainAttrDAO.find("01f22fbd-b672-40af-b528-686d9b27ebc4", UPlainAttr.class));
+        assertNull(plainAttrDAO.find(UUID.randomUUID().toString(), UPlainAttr.class));
+        assertNull(userDAO.findByUsername("rossini").getPlainAttr("fullname"));
+        assertNull(userDAO.findByUsername("vivaldi").getPlainAttr("fullname"));
     }
 
     @Test
@@ -155,16 +156,16 @@ public class PlainSchemaTest extends AbstractTest {
     }
 
     @Test
-    public void deleteALong() {
-        assertEquals(6, resourceDAO.find("resource-db-pull").
+    public void deleteFirstname() {
+        assertEquals(5, resourceDAO.find("resource-db-pull").
                 getProvision(anyTypeDAO.findUser()).getMapping().getItems().size());
 
-        plainSchemaDAO.delete("aLong");
-        assertNull(plainSchemaDAO.find("aLong"));
+        plainSchemaDAO.delete("firstname");
+        assertNull(plainSchemaDAO.find("firstname"));
 
         plainSchemaDAO.flush();
 
-        assertEquals(5, resourceDAO.find("resource-db-pull").
+        assertEquals(4, resourceDAO.find("resource-db-pull").
                 getProvision(anyTypeDAO.findUser()).getMapping().getItems().size());
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/RealmTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/RealmTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/RealmTest.java
index d1bb773..141a2f6 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/RealmTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/RealmTest.java
@@ -47,11 +47,11 @@ public class RealmTest extends AbstractTest {
 
     @Test
     public void test() {
-        Realm realm = realmDAO.find("/odd");
+        Realm realm = realmDAO.findByFullPath("/odd");
         assertNotNull(realm);
 
         // need to remove this group in order to remove the realm, which is otherwise empty
-        Group group = groupDAO.find(16L);
+        Group group = groupDAO.findByName("fake");
         assertNotNull(group);
         assertEquals(realm, group.getRealm());
         groupDAO.delete(group);

http://git-wip-us.apache.org/repos/asf/syncope/blob/550ee4f4/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ReportTest.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ReportTest.java b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ReportTest.java
index c39e3ce..9c3919f 100644
--- a/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ReportTest.java
+++ b/core/persistence-jpa/src/test/java/org/apache/syncope/core/persistence/jpa/outer/ReportTest.java
@@ -50,7 +50,7 @@ public class ReportTest extends AbstractTest {
 
     @Test
     public void find() {
-        Report report = reportDAO.find(1L);
+        Report report = reportDAO.find("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
         assertNotNull(report);
 
         assertNotNull(report.getExecs());
@@ -60,7 +60,7 @@ public class ReportTest extends AbstractTest {
 
     @Test(expected = EntityExistsException.class)
     public void saveWithExistingName() {
-        Report report = reportDAO.find(1L);
+        Report report = reportDAO.find("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
         assertNotNull(report);
 
         String name = report.getName();
@@ -76,7 +76,7 @@ public class ReportTest extends AbstractTest {
 
     @Test
     public void save() {
-        Report report = reportDAO.find(1L);
+        Report report = reportDAO.find("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
         assertNotNull(report);
         assertEquals(1, report.getExecs().size());
 
@@ -94,33 +94,33 @@ public class ReportTest extends AbstractTest {
 
         reportExecDAO.flush();
 
-        report = reportDAO.find(1L);
+        report = reportDAO.find("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
         assertNotNull(report);
         assertEquals(2, report.getExecs().size());
     }
 
     @Test
     public void deleteReport() {
-        reportDAO.delete(1L);
+        reportDAO.delete("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
 
         reportDAO.flush();
 
-        assertNull(reportDAO.find(1L));
-        assertNull(reportExecDAO.find(1L));
+        assertNull(reportDAO.find("0062ea9c-924d-4ecf-9961-4492a8cc6d1b"));
+        assertNull(reportExecDAO.find("0062ea9c-924d-4ecf-9961-4492a8cc6d1b"));
     }
 
     @Test
     public void deleteReportExecution() {
-        ReportExec execution = reportExecDAO.find(1L);
+        ReportExec execution = reportExecDAO.find("c13f39c5-0d35-4bff-ba79-3cd5de940369");
         int executionNumber = execution.getReport().getExecs().size();
 
-        reportExecDAO.delete(1L);
+        reportExecDAO.delete("c13f39c5-0d35-4bff-ba79-3cd5de940369");
 
         reportExecDAO.flush();
 
-        assertNull(reportExecDAO.find(1L));
+        assertNull(reportExecDAO.find("0062ea9c-924d-4ecf-9961-4492a8cc6d1b"));
 
-        Report report = reportDAO.find(1L);
+        Report report = reportDAO.find("0062ea9c-924d-4ecf-9961-4492a8cc6d1b");
         assertEquals(report.getExecs().size(), executionNumber - 1);
     }
 }