X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ri%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fspi%2Frepository%2FAnchorRepository.java;h=d78a016c2e6dc6e57019be77b601c5f06e78553f;hb=refs%2Fheads%2Fmaster;hp=fe9ff9e2f0f104d3a661a10a614d2b3665c7f2de;hpb=8c32ab510d9554ef6713f34d9895e2909e17200e;p=cps.git diff --git a/cps-ri/src/main/java/org/onap/cps/spi/repository/AnchorRepository.java b/cps-ri/src/main/java/org/onap/cps/spi/repository/AnchorRepository.java index fe9ff9e2f..d78a016c2 100755 --- a/cps-ri/src/main/java/org/onap/cps/spi/repository/AnchorRepository.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/repository/AnchorRepository.java @@ -33,7 +33,7 @@ import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @Repository -public interface AnchorRepository extends JpaRepository { +public interface AnchorRepository extends JpaRepository { Optional findByDataspaceAndName(DataspaceEntity dataspaceEntity, String name); @@ -70,22 +70,34 @@ public interface AnchorRepository extends JpaRepository { Integer countByDataspace(DataspaceEntity dataspaceEntity); - @Query(value = "SELECT anchor.* FROM yang_resource\n" - + "JOIN schema_set_yang_resources ON schema_set_yang_resources.yang_resource_id = yang_resource.id\n" - + "JOIN schema_set ON schema_set.id = schema_set_yang_resources.schema_set_id\n" - + "JOIN anchor ON anchor.schema_set_id = schema_set.id\n" - + "WHERE schema_set.dataspace_id = :dataspaceId AND module_name = ANY (:moduleNames)\n" - + "GROUP BY anchor.id, anchor.name, anchor.dataspace_id, anchor.schema_set_id\n" - + "HAVING COUNT(DISTINCT module_name) = :sizeOfModuleNames", nativeQuery = true) - Collection getAnchorsByDataspaceIdAndModuleNames(@Param("dataspaceId") int dataspaceId, - @Param("moduleNames") String[] moduleNames, - @Param("sizeOfModuleNames") int sizeOfModuleNames); - - default Collection getAnchorsByDataspaceIdAndModuleNames(final int dataspaceId, - final Collection moduleNames, - final int sizeOfModuleNames) { + @Query(value = """ + SELECT + anchor.name + FROM + yang_resource + JOIN schema_set_yang_resources ON schema_set_yang_resources.yang_resource_id = yang_resource.id + JOIN schema_set ON schema_set.id = schema_set_yang_resources.schema_set_id + JOIN anchor ON anchor.schema_set_id = schema_set.id + WHERE + schema_set.dataspace_id = :dataspaceId + AND module_name = ANY ( :moduleNames ) + GROUP BY + anchor.id, + anchor.name, + anchor.dataspace_id, + anchor.schema_set_id + HAVING + COUNT(DISTINCT module_name) = :sizeOfModuleNames + """, nativeQuery = true) + Collection getAnchorNamesByDataspaceIdAndModuleNames(@Param("dataspaceId") int dataspaceId, + @Param("moduleNames") String[] moduleNames, + @Param("sizeOfModuleNames") int sizeOfModuleNames); + + default Collection getAnchorNamesByDataspaceIdAndModuleNames(final int dataspaceId, + final Collection moduleNames, + final int sizeOfModuleNames) { final String[] moduleNamesArray = moduleNames.toArray(new String[0]); - return getAnchorsByDataspaceIdAndModuleNames(dataspaceId, moduleNamesArray, sizeOfModuleNames); + return getAnchorNamesByDataspaceIdAndModuleNames(dataspaceId, moduleNamesArray, sizeOfModuleNames); } @Modifying @@ -99,4 +111,8 @@ public interface AnchorRepository extends JpaRepository { deleteAllByDataspaceIdAndNameIn(dataspaceEntity.getId(), anchorNames.toArray(new String[0])); } + @Modifying + @Query(value = "UPDATE anchor SET schema_set_id =:schemaSetId WHERE id = :anchorId ", nativeQuery = true) + void updateAnchorSchemaSetId(@Param("schemaSetId") int schemaSetId, @Param("anchorId") long anchorId); + }