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<AnchorEntity> getAnchorsByDataspaceIdAndModuleNames(@Param("dataspaceId") int dataspaceId,
- @Param("moduleNames") String[] moduleNames,
- @Param("sizeOfModuleNames") int sizeOfModuleNames);
-
- default Collection<AnchorEntity> getAnchorsByDataspaceIdAndModuleNames(final int dataspaceId,
- final Collection<String> 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<String> getAnchorNamesByDataspaceIdAndModuleNames(@Param("dataspaceId") int dataspaceId,
+ @Param("moduleNames") String[] moduleNames,
+ @Param("sizeOfModuleNames") int sizeOfModuleNames);
+
+ default Collection<String> getAnchorNamesByDataspaceIdAndModuleNames(final int dataspaceId,
+ final Collection<String> moduleNames,
+ final int sizeOfModuleNames) {
final String[] moduleNamesArray = moduleNames.toArray(new String[0]);
- return getAnchorsByDataspaceIdAndModuleNames(dataspaceId, moduleNamesArray, sizeOfModuleNames);
+ return getAnchorNamesByDataspaceIdAndModuleNames(dataspaceId, moduleNamesArray, sizeOfModuleNames);
}
@Modifying