X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ri%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fspi%2Frepository%2FYangResourceRepository.java;h=e8337963371f9b0ca4fdd4103f14e682e16d88d1;hb=c29a5fe32db7efb0fdefa3a3d020110aab9731b4;hp=fff0a6a037fdc6758c200215c9f211add9150e70;hpb=13237bbca932741b8ff3061bc79a9c45d38d80d5;p=cps.git diff --git a/cps-ri/src/main/java/org/onap/cps/spi/repository/YangResourceRepository.java b/cps-ri/src/main/java/org/onap/cps/spi/repository/YangResourceRepository.java index fff0a6a03..e83379633 100644 --- a/cps-ri/src/main/java/org/onap/cps/spi/repository/YangResourceRepository.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/repository/YangResourceRepository.java @@ -32,63 +32,81 @@ import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @Repository -public interface YangResourceRepository extends JpaRepository, +public interface YangResourceRepository extends JpaRepository, YangResourceNativeRepository, SchemaSetYangResourceRepository { - List findAllByChecksumIn(Set checksum); + List findAllByChecksumIn(String[] checksums); - @Query(value = "SELECT DISTINCT\n" - + "yang_resource.module_name AS module_name,\n" - + "yang_resource.revision AS revision\n" - + "FROM\n" - + "dataspace\n" - + "JOIN schema_set ON schema_set.dataspace_id = dataspace.id\n" - + "JOIN schema_set_yang_resources ON schema_set_yang_resources.schema_set_id = " - + "schema_set.id\n" - + "JOIN yang_resource ON yang_resource.id = schema_set_yang_resources.yang_resource_id\n" - + "WHERE\n" - + "dataspace.name = :dataspaceName", nativeQuery = true) + default List findAllByChecksumIn(final Collection checksums) { + return findAllByChecksumIn(checksums.toArray(new String[0])); + } + + @Query(value = """ + SELECT DISTINCT + yang_resource.module_name AS module_name, + yang_resource.revision AS revision + FROM + dataspace + JOIN schema_set ON schema_set.dataspace_id = dataspace.id + JOIN schema_set_yang_resources ON schema_set_yang_resources.schema_set_id = schema_set.id + JOIN yang_resource ON yang_resource.id = schema_set_yang_resources.yang_resource_id + WHERE + dataspace.name = :dataspaceName + """, nativeQuery = true) Set findAllModuleReferencesByDataspace(@Param("dataspaceName") String dataspaceName); - @Query(value = "SELECT DISTINCT\n" - + "yang_resource.module_Name AS module_name,\n" - + "yang_resource.revision AS revision\n" - + "FROM\n" - + "dataspace\n" - + "JOIN anchor ON anchor.dataspace_id = dataspace.id\n" - + "JOIN schema_set ON schema_set.id = anchor.schema_set_id\n" - + "JOIN schema_set_yang_resources ON schema_set_yang_resources.schema_set_id = " - + "schema_set.id\n" - + "JOIN yang_resource ON yang_resource.id = schema_set_yang_resources.yang_resource_id\n" - + "WHERE\n" - + "dataspace.name = :dataspaceName AND\n" - + "anchor.name =:anchorName", nativeQuery = true) + @Query(value = """ + SELECT DISTINCT + yang_resource.module_name AS module_name, + yang_resource.revision AS revision + FROM + dataspace + JOIN anchor ON anchor.dataspace_id = dataspace.id + JOIN schema_set ON schema_set.id = anchor.schema_set_id + JOIN schema_set_yang_resources ON schema_set_yang_resources.schema_set_id = schema_set.id + JOIN yang_resource ON yang_resource.id = schema_set_yang_resources.yang_resource_id + WHERE + dataspace.name = :dataspaceName + AND anchor.name = :anchorName + """, nativeQuery = true) Set findAllModuleReferencesByDataspaceAndAnchor( @Param("dataspaceName") String dataspaceName, @Param("anchorName") String anchorName); - @Query(value = "SELECT DISTINCT yang_resource.*\n" - + "FROM dataspace\n" - + "JOIN anchor ON anchor.dataspace_id = dataspace.id\n" - + "JOIN schema_set ON schema_set.id = anchor.schema_set_id\n" - + "JOIN schema_set_yang_resources ON schema_set_yang_resources.schema_set_id = schema_set.id\n" - + "JOIN yang_resource ON yang_resource.id = schema_set_yang_resources.yang_resource_id\n" - + "WHERE dataspace.name = :dataspaceName " - + "AND anchor.name =:anchorName", nativeQuery = true) + @Query(value = """ + SELECT DISTINCT + yang_resource.* + FROM + dataspace + JOIN anchor ON anchor.dataspace_id = dataspace.id + JOIN schema_set ON schema_set.id = anchor.schema_set_id + JOIN schema_set_yang_resources ON schema_set_yang_resources.schema_set_id = schema_set.id + JOIN yang_resource ON yang_resource.id = schema_set_yang_resources.yang_resource_id + WHERE + dataspace.name = :dataspaceName + AND anchor.name = :anchorName + """, nativeQuery = true) Set findAllModuleDefinitionsByDataspaceAndAnchor( @Param("dataspaceName") String dataspaceName, @Param("anchorName") String anchorName); - @Query(value = "SELECT DISTINCT\n" - + "yang_resource.*\n" - + "FROM\n" - + "dataspace\n" - + "JOIN schema_set ON schema_set.dataspace_id = dataspace.id\n" - + "JOIN schema_set_yang_resources ON schema_set_yang_resources.schema_set_id = " - + "schema_set.id\n" - + "JOIN yang_resource ON yang_resource.id = schema_set_yang_resources.yang_resource_id\n" - + "WHERE\n" - + "dataspace.name = :dataspaceName and yang_resource.module_Name IN (:moduleNames)", nativeQuery = true) + @Query(value = """ + SELECT DISTINCT + yang_resource.* + FROM + dataspace + JOIN schema_set ON schema_set.dataspace_id = dataspace.id + JOIN schema_set_yang_resources ON schema_set_yang_resources.schema_set_id = schema_set.id + JOIN yang_resource ON yang_resource.id = schema_set_yang_resources.yang_resource_id + WHERE + dataspace.name = :dataspaceName + AND yang_resource.module_name = ANY ( :moduleNames ) + """, nativeQuery = true) Set findAllModuleReferencesByDataspaceAndModuleNames( - @Param("dataspaceName") String dataspaceName, @Param("moduleNames") Collection moduleNames); + @Param("dataspaceName") String dataspaceName, @Param("moduleNames") String[] moduleNames); + + default Set findAllModuleReferencesByDataspaceAndModuleNames( + final String dataspaceName, final Collection moduleNames) { + return findAllModuleReferencesByDataspaceAndModuleNames(dataspaceName, moduleNames.toArray(new String[0])); + } @Modifying @Query(value = "DELETE FROM yang_resource yr WHERE NOT EXISTS "