Interface WorkflowEdgeRepository

All Superinterfaces:
org.springframework.data.repository.CrudRepository<WorkflowEdgeEntity,Long>, org.springframework.data.jpa.repository.JpaRepository<WorkflowEdgeEntity,Long>, org.springframework.data.jpa.repository.JpaSpecificationExecutor<WorkflowEdgeEntity>, org.springframework.data.repository.ListCrudRepository<WorkflowEdgeEntity,Long>, org.springframework.data.repository.ListPagingAndSortingRepository<WorkflowEdgeEntity,Long>, org.springframework.data.repository.PagingAndSortingRepository<WorkflowEdgeEntity,Long>, org.springframework.data.repository.query.QueryByExampleExecutor<WorkflowEdgeEntity>, org.springframework.data.repository.Repository<WorkflowEdgeEntity,Long>

public interface WorkflowEdgeRepository extends org.springframework.data.jpa.repository.JpaRepository<WorkflowEdgeEntity,Long>, org.springframework.data.jpa.repository.JpaSpecificationExecutor<WorkflowEdgeEntity>
工作流边数据访问层 提供边的基础CRUD操作和复杂查询功能
  • Method Details

    • findByUid

      根据UID查找边
    • findByUidAndDeletedFalse

      Optional<WorkflowEdgeEntity> findByUidAndDeletedFalse(String uid)
      根据UID查找未删除的边
    • existsByUid

      Boolean existsByUid(String uid)
      检查UID是否存在
    • existsByUidAndDeletedFalse

      Boolean existsByUidAndDeletedFalse(String uid)
      检查UID是否存在且未删除
    • findByNameAndOrgUidAndTypeAndDeletedFalse

      Optional<WorkflowEdgeEntity> findByNameAndOrgUidAndTypeAndDeletedFalse(String name, String orgUid, String type)
      根据名称、组织UID和类型查找边
    • findByWorkflowAndDeletedFalse

      List<WorkflowEdgeEntity> findByWorkflowAndDeletedFalse(WorkflowEntity workflow)
      查找工作流的所有边
    • findByWorkflowAndTypeAndDeletedFalse

      List<WorkflowEdgeEntity> findByWorkflowAndTypeAndDeletedFalse(WorkflowEntity workflow, String type)
      查找工作流中特定类型的边
    • findByWorkflowAndEnabledTrueAndDeletedFalse

      List<WorkflowEdgeEntity> findByWorkflowAndEnabledTrueAndDeletedFalse(WorkflowEntity workflow)
      查找工作流中启用的边
    • findByWorkflowAndEnabledFalseAndDeletedFalse

      List<WorkflowEdgeEntity> findByWorkflowAndEnabledFalseAndDeletedFalse(WorkflowEntity workflow)
      查找工作流中禁用的边
    • findByWorkflowAndSourceNodeIdAndDeletedFalse

      List<WorkflowEdgeEntity> findByWorkflowAndSourceNodeIdAndDeletedFalse(WorkflowEntity workflow, String sourceNodeId)
      查找从指定节点出发的边
    • findByWorkflowAndTargetNodeIdAndDeletedFalse

      List<WorkflowEdgeEntity> findByWorkflowAndTargetNodeIdAndDeletedFalse(WorkflowEntity workflow, String targetNodeId)
      查找到达指定节点的边
    • findByWorkflowAndSourceNodeIdAndTargetNodeIdAndDeletedFalse

      List<WorkflowEdgeEntity> findByWorkflowAndSourceNodeIdAndTargetNodeIdAndDeletedFalse(WorkflowEntity workflow, String sourceNodeId, String targetNodeId)
      查找连接两个特定节点的边
    • findEdgesConnectingNode

      @Query("SELECT e FROM WorkflowEdgeEntity e WHERE e.workflow = :workflow AND (e.sourceNodeId = :nodeId OR e.targetNodeId = :nodeId) AND e.deleted = false") List<WorkflowEdgeEntity> findEdgesConnectingNode(@Param("workflow") WorkflowEntity workflow, @Param("nodeId") String nodeId)
      查找连接指定节点的所有边(作为源或目标)
    • findByWorkflowAndSourceNodeIdAndSourcePortIdAndDeletedFalse

      List<WorkflowEdgeEntity> findByWorkflowAndSourceNodeIdAndSourcePortIdAndDeletedFalse(WorkflowEntity workflow, String sourceNodeId, String sourcePortId)
      查找从指定端口出发的边
    • findByWorkflowAndTargetNodeIdAndTargetPortIdAndDeletedFalse

      List<WorkflowEdgeEntity> findByWorkflowAndTargetNodeIdAndTargetPortIdAndDeletedFalse(WorkflowEntity workflow, String targetNodeId, String targetPortId)
      查找到达指定端口的边
    • findConditionalEdges

      @Query("SELECT e FROM WorkflowEdgeEntity e WHERE e.workflow = :workflow AND e.conditionExpression IS NOT NULL AND e.conditionExpression <> \'\' AND e.deleted = false") List<WorkflowEdgeEntity> findConditionalEdges(@Param("workflow") WorkflowEntity workflow)
      查找有条件表达式的边
    • findEdgesByWeightRange

      @Query("SELECT e FROM WorkflowEdgeEntity e WHERE e.workflow = :workflow AND e.weight BETWEEN :minWeight AND :maxWeight AND e.deleted = false ORDER BY e.weight ASC") List<WorkflowEdgeEntity> findEdgesByWeightRange(@Param("workflow") WorkflowEntity workflow, @Param("minWeight") Integer minWeight, @Param("maxWeight") Integer maxWeight)
      查找指定权重范围的边
    • findFrequentlyUsedEdges

      @Query("SELECT e FROM WorkflowEdgeEntity e WHERE e.workflow = :workflow AND e.executionCount >= :minCount AND e.deleted = false ORDER BY e.executionCount DESC") List<WorkflowEdgeEntity> findFrequentlyUsedEdges(@Param("workflow") WorkflowEntity workflow, @Param("minCount") Long minCount)
      查找执行次数超过指定值的边
    • findRecentlyExecutedEdges

      @Query("SELECT e FROM WorkflowEdgeEntity e WHERE e.workflow = :workflow AND e.lastExecutionTime >= :since AND e.deleted = false ORDER BY e.lastExecutionTime DESC") List<WorkflowEdgeEntity> findRecentlyExecutedEdges(@Param("workflow") WorkflowEntity workflow, @Param("since") ZonedDateTime since)
      查找最近执行过的边
    • countEdgesByType

      @Query("SELECT e.type, COUNT(e) FROM WorkflowEdgeEntity e WHERE e.workflow = :workflow AND e.deleted = false GROUP BY e.type") List<Object[]> countEdgesByType(@Param("workflow") WorkflowEntity workflow)
      统计工作流中各类型边的数量
    • findOrphanedEdges

      @Query("SELECT e FROM WorkflowEdgeEntity e WHERE e.workflow = :workflow AND e.deleted = false AND (e.sourceNodeId NOT IN (SELECT n.uid FROM WorkflowNodeEntity n WHERE n.workflow = :workflow AND n.deleted = false) OR e.targetNodeId NOT IN (SELECT n.uid FROM WorkflowNodeEntity n WHERE n.workflow = :workflow AND n.deleted = false))") List<WorkflowEdgeEntity> findOrphanedEdges(@Param("workflow") WorkflowEntity workflow)
      查找孤立的边(连接的节点不存在) 注意:这个查询需要根据实际的节点表结构进行调整
    • findSelfLoopEdges

      @Query("SELECT e FROM WorkflowEdgeEntity e WHERE e.workflow = :workflow AND e.sourceNodeId = e.targetNodeId AND e.deleted = false") List<WorkflowEdgeEntity> findSelfLoopEdges(@Param("workflow") WorkflowEntity workflow)
      查找环形连接的边 注意:这是一个简化的环检测,复杂的环检测需要在业务层实现
    • batchUpdateEdgeEnabled

      @Query("UPDATE WorkflowEdgeEntity e SET e.enabled = :enabled WHERE e.workflow = :workflow AND e.uid IN :edgeUids") int batchUpdateEdgeEnabled(@Param("workflow") WorkflowEntity workflow, @Param("edgeUids") List<String> edgeUids, @Param("enabled") Boolean enabled)
      批量启用/禁用边
    • batchDeleteEdgesConnectingNode

      @Query("UPDATE WorkflowEdgeEntity e SET e.deleted = true WHERE e.workflow = :workflow AND (e.sourceNodeId = :nodeId OR e.targetNodeId = :nodeId)") int batchDeleteEdgesConnectingNode(@Param("workflow") WorkflowEntity workflow, @Param("nodeId") String nodeId)
      批量删除连接指定节点的边