import org.springframework.stereotype.Repository;
@Repository
-public interface AnchorRepository extends JpaRepository<AnchorEntity, Integer> {
+public interface AnchorRepository extends JpaRepository<AnchorEntity, Long> {
Optional<AnchorEntity> findByDataspaceAndName(DataspaceEntity dataspaceEntity, String name);
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)
+ @Query(value = """
+ SELECT
+ anchor.*
+ 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<AnchorEntity> getAnchorsByDataspaceIdAndModuleNames(@Param("dataspaceId") int dataspaceId,
@Param("moduleNames") String[] moduleNames,
@Param("sizeOfModuleNames") int sizeOfModuleNames);
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);
+
}