Skip to content
On this page

框架特性

一、集成

  • 支持通过简单配置,快速完成 NebulaGraph 与 Spring Boot 的整合

二、单表(Vertex、Edge)操作,无需写 nGQL | Cypher

用法参见【使用基类编写

API用法说明
selectById(ID id)通过主键获取节点
selectByIds(Collection<I> ids)根据 ID 集合获取节点
selectBySelective(T entity)按实体属性值查询
selectIdBySelectiveStringLike(T entity)根据实体属性值查询,字符串属性使用模糊查询
selectByMap(Map<String, Object> param)根据 Map 参数查询
countByMap(Map<String, Object> param)根据 Map 参数统计条数
selectPage(Page<T> page)分页查询
insert(T entity)插入 Vertex,空值覆盖
insertSelective(T entity)插入 Vertex,空值跳过
insertBatch(List<T> list)批量插入 Vertex
updateById(T entity)根据 ID 值进行更新,空值覆盖
updateByIdSelective(T entity)根据 ID 值进行更新,空值跳过,保留数据库原值
updateByIdBatchSelective(List<T> entities)批量更新,属性空值跳过,保留数据库原值
deleteWithEdgeById(I id)根据 ID 值,删除节点与关系
deleteById(I id)根据 ID 值,删除节点(保留悬挂边)
insertEdge(S startNode, R edge, E endNode)插入关系
existsEdge(ID startId, Class edgeType, ID endId)判断两个节点是否有关系
listStartNodes(Class edgeType, ID endId)查找一个节点某种关系中的所有上游节点
listStartNodes(Class<E> startType, Class edgeType, ID endId)查找一个节点某种关系中的特定类型的上游节点
startNode(Class edgeType, ID endId)查找一个节点中,某种关系的唯一一个上游节点
startNode(Class<E> startType, Class edgeType, ID endId)查找查找一个节点特定类型的上游节点

三、使用 XML 的方式,集中管理 nGQL | Cypher

用法参见【自定义nGQL

扫描指定资源包,并获得 nGQL | Cypher 模板,在模板的基础上做操作。

(一) 参数替换

  • 使用占位符为 nGQL | Cypher 替换参数,并执行到数据库
    • 编写查询脚本模板,搭配参数控制,实现动态查询
    • 通过参数循环,实现批量操作

(二) 通过 DAO 接口的方法签名信息,对 ResultSet 进行处理,形成业务所需类型

  • 集合类型
    • Collection<基本类型>
    • Collection<对象类型> Object 类型参考下述 Object 的支持
  • 基本类型
    • String
    • Boolean
    • Number(Integer、Long、Float、Double、Byte、Short),暂时只支持 Java 包装类
  • 对象类型
    • Object
    • 多列 return 值转换成 Map
    • 多列 return 值转换成 POJO
    • 支持 Vertex 类型转换成 POJO
    • 支持 Edge 类型转换成 POJO
  • ResultSet 如不需要使用框架自带的结果处理,可直接在接口声明返回值 ResultSet 并自行处理

四、主键生成策略接口

  • 提供主键生成器的埋点,开发者可自定义主键生成器