Remove dataspace_id column from Fragment table
[cps.git] / cps-ri / src / main / java / org / onap / cps / spi / repository / FragmentQueryBuilder.java
index 76cfaa8..72750dc 100644 (file)
@@ -88,8 +88,14 @@ public class FragmentQueryBuilder {
         final StringBuilder sqlStringBuilder = new StringBuilder();
         final Map<String, Object> queryParameters = new HashMap<>();
 
-        sqlStringBuilder.append("SELECT * FROM fragment WHERE ");
-        addDataspaceOrAnchor(sqlStringBuilder, queryParameters, dataspaceEntity, anchorEntity);
+        if (anchorEntity == ACROSS_ALL_ANCHORS) {
+            sqlStringBuilder.append("SELECT fragment.* FROM fragment JOIN anchor ON anchor.id = fragment.anchor_id"
+                + " WHERE dataspace_id = :dataspaceId");
+            queryParameters.put("dataspaceId", dataspaceEntity.getId());
+        } else {
+            sqlStringBuilder.append("SELECT * FROM fragment WHERE anchor_id = :anchorId");
+            queryParameters.put("anchorId", anchorEntity.getId());
+        }
         addXpathSearch(cpsPathQuery, sqlStringBuilder, queryParameters);
         addLeafConditions(cpsPathQuery, sqlStringBuilder);
         addTextFunctionCondition(cpsPathQuery, sqlStringBuilder, queryParameters);
@@ -100,19 +106,6 @@ public class FragmentQueryBuilder {
         return query;
     }
 
-    private static void addDataspaceOrAnchor(final StringBuilder sqlStringBuilder,
-                                             final Map<String, Object> queryParameters,
-                                             final DataspaceEntity dataspaceEntity,
-                                             final AnchorEntity anchorEntity) {
-        if (anchorEntity == ACROSS_ALL_ANCHORS) {
-            sqlStringBuilder.append("dataspace_id = :dataspaceId");
-            queryParameters.put("dataspaceId", dataspaceEntity.getId());
-        } else {
-            sqlStringBuilder.append("anchor_id = :anchorId");
-            queryParameters.put("anchorId", anchorEntity.getId());
-        }
-    }
-
     private static void addXpathSearch(final CpsPathQuery cpsPathQuery,
                                        final StringBuilder sqlStringBuilder,
                                        final Map<String, Object> queryParameters) {