| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- package com.snapshot.repository;
- import com.snapshot.entity.TrieNode;
- import org.springframework.data.jpa.repository.JpaRepository;
- import org.springframework.data.jpa.repository.Query;
- import org.springframework.data.repository.query.Param;
- import org.springframework.stereotype.Repository;
- import java.util.List;
- import java.util.Optional;
- /**
- * 字典树节点Repository接口
- */
- @Repository
- public interface TrieNodeRepository extends JpaRepository<TrieNode, Long> {
- /**
- * 根据父节点ID和节点字符查找子节点
- */
- Optional<TrieNode> findByParentIdAndNodeKey(Long parentId, String nodeKey);
- /**
- * 查找指定上传记录的所有节点
- */
- List<TrieNode> findByUploadId(String uploadId);
- /**
- * 根据前缀查找匹配的叶子节点(完整ID)
- */
- @Query("SELECT tn FROM TrieNode tn WHERE tn.uploadId IS NOT NULL " +
- "AND tn.uploadId LIKE CONCAT(:prefix, '%') " +
- "ORDER BY tn.uploadId")
- List<TrieNode> findByPrefix(@Param("prefix") String prefix);
- /**
- * 删除指定上传记录的所有字典树节点
- */
- void deleteByUploadId(String uploadId);
- }
|