Merge "Define and onboard model for subscription events"
[cps.git] / cps-ri / src / main / java / org / onap / cps / spi / repository / YangResourceRepository.java
index 5e9c474..6ca4fff 100644 (file)
@@ -34,7 +34,7 @@ import org.springframework.stereotype.Repository;
 
 @Repository
 public interface YangResourceRepository extends JpaRepository<YangResourceEntity, Long>,
-        SchemaSetYangResourceRepository {
+    YangResourceNativeRepository, SchemaSetYangResourceRepository {
 
     List<YangResourceEntity> findAllByChecksumIn(@NotNull Set<String> checksum);
 
@@ -67,6 +67,17 @@ public interface YangResourceRepository extends JpaRepository<YangResourceEntity
     Set<YangResourceModuleReference> 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)
+    Set<YangResourceEntity> findAllModuleDefinitionsByDataspaceAndAnchor(
+            @Param("dataspaceName") String dataspaceName, @Param("anchorName") String anchorName);
+
     @Query(value = "SELECT DISTINCT\n"
         + "yang_resource.*\n"
         + "FROM\n"
@@ -80,10 +91,6 @@ public interface YangResourceRepository extends JpaRepository<YangResourceEntity
     Set<YangResourceModuleReference> findAllModuleReferencesByDataspaceAndModuleNames(
             @Param("dataspaceName") String dataspaceName, @Param("moduleNames") Collection<String> moduleNames);
 
-
-    @Query(value = "SELECT id FROM yang_resource WHERE module_name=:name and revision=:revision", nativeQuery = true)
-    Long getIdByModuleNameAndRevision(@Param("name") String moduleName, @Param("revision") String revision);
-
     @Modifying
     @Query(value = "DELETE FROM yang_resource yr WHERE NOT EXISTS "
         + "(SELECT 1 FROM schema_set_yang_resources ssyr WHERE ssyr.yang_resource_id = yr.id)", nativeQuery = true)