Package com.bytedesk.core.workflow_edge
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操作和复杂查询功能
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.data.jpa.repository.JpaSpecificationExecutor
org.springframework.data.jpa.repository.JpaSpecificationExecutor.SpecificationFluentQuery<T extends Object> -
Method Summary
Modifier and TypeMethodDescriptionintbatchDeleteEdgesConnectingNode(WorkflowEntity workflow, String nodeId) 批量删除连接指定节点的边intbatchUpdateEdgeEnabled(WorkflowEntity workflow, List<String> edgeUids, Boolean enabled) 批量启用/禁用边countEdgesByType(WorkflowEntity workflow) 统计工作流中各类型边的数量existsByUid(String uid) 检查UID是否存在检查UID是否存在且未删除findByNameAndOrgUidAndTypeAndDeletedFalse(String name, String orgUid, String type) 根据名称、组织UID和类型查找边根据UID查找边根据UID查找未删除的边findByWorkflowAndDeletedFalse(WorkflowEntity workflow) 查找工作流的所有边查找工作流中禁用的边查找工作流中启用的边findByWorkflowAndSourceNodeIdAndDeletedFalse(WorkflowEntity workflow, String sourceNodeId) 查找从指定节点出发的边findByWorkflowAndSourceNodeIdAndSourcePortIdAndDeletedFalse(WorkflowEntity workflow, String sourceNodeId, String sourcePortId) 查找从指定端口出发的边findByWorkflowAndSourceNodeIdAndTargetNodeIdAndDeletedFalse(WorkflowEntity workflow, String sourceNodeId, String targetNodeId) 查找连接两个特定节点的边findByWorkflowAndTargetNodeIdAndDeletedFalse(WorkflowEntity workflow, String targetNodeId) 查找到达指定节点的边findByWorkflowAndTargetNodeIdAndTargetPortIdAndDeletedFalse(WorkflowEntity workflow, String targetNodeId, String targetPortId) 查找到达指定端口的边findByWorkflowAndTypeAndDeletedFalse(WorkflowEntity workflow, String type) 查找工作流中特定类型的边findConditionalEdges(WorkflowEntity workflow) 查找有条件表达式的边findEdgesByWeightRange(WorkflowEntity workflow, Integer minWeight, Integer maxWeight) 查找指定权重范围的边findEdgesConnectingNode(WorkflowEntity workflow, String nodeId) 查找连接指定节点的所有边(作为源或目标)findFrequentlyUsedEdges(WorkflowEntity workflow, Long minCount) 查找执行次数超过指定值的边findOrphanedEdges(WorkflowEntity workflow) 查找孤立的边(连接的节点不存在) 注意:这个查询需要根据实际的节点表结构进行调整findRecentlyExecutedEdges(WorkflowEntity workflow, ZonedDateTime since) 查找最近执行过的边findSelfLoopEdges(WorkflowEntity workflow) 查找环形连接的边 注意:这是一个简化的环检测,复杂的环检测需要在业务层实现Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, deleteAll, deleteAll, deleteAllById, deleteById, existsById, findById, saveMethods inherited from interface org.springframework.data.jpa.repository.JpaRepository
deleteAllByIdInBatch, deleteAllInBatch, deleteAllInBatch, deleteInBatch, findAll, findAll, flush, getById, getOne, getReferenceById, saveAllAndFlush, saveAndFlushMethods inherited from interface org.springframework.data.jpa.repository.JpaSpecificationExecutor
count, delete, exists, findAll, findAll, findAll, findAll, findBy, findOneMethods inherited from interface org.springframework.data.repository.ListCrudRepository
findAll, findAllById, saveAllMethods inherited from interface org.springframework.data.repository.ListPagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.PagingAndSortingRepository
findAllMethods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor
count, exists, findAll, findBy, findOne
-
Method Details
-
findByUid
根据UID查找边 -
findByUidAndDeletedFalse
根据UID查找未删除的边 -
existsByUid
检查UID是否存在 -
existsByUidAndDeletedFalse
检查UID是否存在且未删除 -
findByNameAndOrgUidAndTypeAndDeletedFalse
Optional<WorkflowEdgeEntity> findByNameAndOrgUidAndTypeAndDeletedFalse(String name, String orgUid, String type) 根据名称、组织UID和类型查找边 -
findByWorkflowAndDeletedFalse
查找工作流的所有边 -
findByWorkflowAndTypeAndDeletedFalse
查找工作流中特定类型的边 -
findByWorkflowAndEnabledTrueAndDeletedFalse
查找工作流中启用的边 -
findByWorkflowAndEnabledFalseAndDeletedFalse
查找工作流中禁用的边 -
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) 批量删除连接指定节点的边
-