From d6554a7d7acb7f03392c1bd56a01e85a092edd81 Mon Sep 17 00:00:00 2001 From: knqiufan Date: Wed, 12 Jun 2024 22:24:47 +0800 Subject: [PATCH 1/3] - optimized code format --- .../contrib/ngbatis/proxy/NebulaDaoBasic.java | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/src/main/java/org/nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java b/src/main/java/org/nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java index cbc77be..1ecb85b 100644 --- a/src/main/java/org/nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java +++ b/src/main/java/org/nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java @@ -4,24 +4,8 @@ package org.nebula.contrib.ngbatis.proxy; -import static org.nebula.contrib.ngbatis.proxy.NebulaDaoBasicExt.edgeName; -import static org.nebula.contrib.ngbatis.proxy.NebulaDaoBasicExt.entityType; -import static org.nebula.contrib.ngbatis.proxy.NebulaDaoBasicExt.getClassModel; -import static org.nebula.contrib.ngbatis.proxy.NebulaDaoBasicExt.getCqlTpl; -import static org.nebula.contrib.ngbatis.proxy.NebulaDaoBasicExt.getMethodModel; -import static org.nebula.contrib.ngbatis.proxy.NebulaDaoBasicExt.pkType; -import static org.nebula.contrib.ngbatis.proxy.NebulaDaoBasicExt.proxy; -import static org.nebula.contrib.ngbatis.proxy.NebulaDaoBasicExt.vertexName; - import com.sun.istack.NotNull; import com.vesoft.nebula.client.graph.data.ResultSet; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.Map; import org.nebula.contrib.ngbatis.exception.QueryException; import org.nebula.contrib.ngbatis.models.ClassModel; import org.nebula.contrib.ngbatis.models.MethodModel; @@ -29,6 +13,11 @@ import org.nebula.contrib.ngbatis.utils.Page; import org.springframework.data.repository.query.Param; +import java.io.Serializable; +import java.util.*; + +import static org.nebula.contrib.ngbatis.proxy.NebulaDaoBasicExt.*; + /** * 数据访问的基类,用于提供单表 CRUD 与基本的节点关系操作
* 以下在方法注释中所说的“对应类型” 均指的是 泛 型T @@ -40,6 +29,7 @@ public interface NebulaDaoBasic { // region query zoom + /** *

通过主键查询对应表的单条记录

* @@ -182,6 +172,7 @@ default Long countPage(Page page) { // endregion // region insert zoom + /** *

插入一条记录,全属性插入

* @@ -214,6 +205,7 @@ default Integer insertSelective(T record) { /** * 批量插入全字段 + * * @param ts 当前Tag下的多节点 */ default void insertBatch(List ts) { @@ -224,12 +216,13 @@ default void insertBatch(List ts) { /** * 批量插入非空字段 + * * @param ts 当前Tag下多个顶点 */ default void insertSelectiveBatch(List ts) { MethodModel methodModel = getMethodModel(); ClassModel classModel = getClassModel(this.getClass()); - MapperProxy.invoke(classModel,methodModel,ts); + MapperProxy.invoke(classModel, methodModel, ts); } // endregion @@ -262,6 +255,7 @@ default T updateByIdSelective(T record) { /** * 批量更新行记录,selective + * * @param ts 当前Tag下的多节点 */ default void updateByIdBatchSelective(List ts) { @@ -287,6 +281,7 @@ default void upsertByIdSelective(T record) { // endregion // region delete zoom + /** *

数据操作,逻辑删除接口,前提当前类 有字段 is_del

* @@ -328,6 +323,7 @@ default Integer deleteById(I id) { } // endregion + /** *

通过 主键批量删除当前记录

* @@ -344,6 +340,7 @@ default Integer deleteByIdBatch(Collection ids) { } // region graph special + /** * 根据三元组值,插入关系 * @@ -375,9 +372,9 @@ default void insertEdgeBatch(List triplets) { * 根据三元组值, 插入关系 *

Selective: 仅处理非空字段

* - * @param src 开始节点值 - * @param edge 关系值 - * @param dst 结束节点值 + * @param src 开始节点值 + * @param edge 关系值 + * @param dst 结束节点值 */ default void insertEdgeSelective(@NotNull Object src, @NotNull Object edge, @NotNull Object dst) { if (dst == null || src == null || edge == null) { @@ -392,9 +389,9 @@ default void insertEdgeSelective(@NotNull Object src, @NotNull Object edge, @Not * 根据三元组值, 插入关系 *

Selective: 仅处理非空字段

* - * @param src 开始节点值 - * @param edge 关系值 - * @param dst 结束节点值 + * @param src 开始节点值 + * @param edge 关系值 + * @param dst 结束节点值 */ default void upsertEdgeSelective(@NotNull Object src, @NotNull Object edge, @NotNull Object dst) { if (dst == null || src == null || edge == null) { @@ -410,22 +407,22 @@ default void upsertEdgeSelective(@NotNull Object src, @NotNull Object edge, @Not * * @param startId 开始节点的 id * @param edgeType 关系类型 - * @param endId 结束节点的 id + * @param endId 结束节点的 id * @return 数据库中,两个 id 的节点是否有关系 */ default Boolean existsEdge(I startId, Class edgeType, I endId) { String cqlTpl = getCqlTpl(); String edgeName = edgeName(edgeType); return (Boolean) proxy(this.getClass(), Boolean.class, cqlTpl, - new Class[]{Serializable.class, Class.class, Serializable.class}, startId, edgeName, - endId); + new Class[]{Serializable.class, Class.class, Serializable.class}, startId, edgeName, + endId); } /** * 通过结束节点id与关系类型获取所有开始节点,
开始节点类型为当前接口实现类所管理的实体对应的类型 * * @param edgeType 关系类型 - * @param endId 结束节点的 id + * @param endId 结束节点的 id * @return 开始节点列表 */ default List listStartNodes(Class edgeType, I endId) { @@ -438,7 +435,7 @@ default List listStartNodes(Class edgeType, I endId) { * * @param startType 开始节点的类型 * @param edgeType 关系类型 - * @param endId 结束节点的 id + * @param endId 结束节点的 id * @return 开始节点列表 */ default List listStartNodes(Class startType, Class edgeType, I endId) { @@ -448,14 +445,14 @@ default List listStartNodes(Class startType, Class edgeType, I endId) { Class daoType = this.getClass(); Class returnType = entityType(daoType); return (List) proxy(daoType, returnType, cqlTpl, - new Class[]{Class.class, Class.class, Serializable.class}, startVertexName, edgeName, - endId); + new Class[]{Class.class, Class.class, Serializable.class}, startVertexName, edgeName, + endId); } /** * 通过开始节点id与关系类型获取所有结束节点,
结束节点类型为当前接口实现类所管理的实体对应的类型 * - * @param startId 开始节点id + * @param startId 开始节点id * @param edgeType 关系类型 * @return 结束节点列表 */ @@ -467,9 +464,9 @@ default List listEndNodes(I startId, Class edgeType) { /** * 指定结束节点类型 并通过开始节点id与关系类型获取所有结束节点 * - * @param startId 开始节点的id + * @param startId 开始节点的id * @param edgeType 关系类型 - * @param endType 结束节点的类型 + * @param endType 结束节点的类型 * @return 结束节点列表 */ default List listEndNodes(I startId, Class edgeType, Class endType) { @@ -487,7 +484,7 @@ default List listEndNodes(I startId, Class edgeType, Class endType) { * 通过结束节点id与关系类型获取第一个开始节点,
开始节点类型为当前接口实现类所管理的实体对应的类型 (对应类型) * * @param edgeType 关系类型 - * @param endId 结束节点的 id + * @param endId 结束节点的 id * @return 开始节点 */ default T startNode(Class edgeType, I endId) { @@ -500,8 +497,8 @@ default T startNode(Class edgeType, I endId) { * * @param startType 开始节点的类型 * @param edgeType 关系类型 - * @param endId 结束节点的 id - * @param 开始节点的类型 + * @param endId 结束节点的 id + * @param 开始节点的类型 * @return 开始节点 */ default E startNode(Class startType, Class edgeType, I endId) { @@ -511,17 +508,18 @@ default E startNode(Class startType, Class edgeType, I endId) { Class daoType = this.getClass(); Class returnType = entityType(daoType); return (E) proxy(daoType, returnType, cqlTpl, - new Class[]{Class.class, Class.class, Serializable.class}, startVertexName, edgeName, - endId); + new Class[]{Class.class, Class.class, Serializable.class}, startVertexName, edgeName, + endId); } /** * Find the shortest path by srcId and dstId. + * * @param srcId the start node's id * @param dstId the end node's id * @return Shortest path list. entities containing vertext in path. - * If you want to obtain attributes within an entity, - * you need to use “with prop” in the nGQL. + * If you want to obtain attributes within an entity, + * you need to use “with prop” in the nGQL. */ default List> shortestPath(@Param("srcId") I srcId, @Param("dstId") I dstId) { MethodModel methodModel = getMethodModel(); @@ -533,22 +531,23 @@ default List> shortestPath(@Param("srcId") I srcId, @Param("dstId") I /** * 查找指定起始点和目的点之间的最短路径 - * @param srcId 起始点id - * @param dstId 目的点id + * + * @param srcId 起始点id + * @param dstId 目的点id * @param edgeTypeList Edge type 列表 - * @param direction REVERSELY表示反向,BIDIRECT表示双向 + * @param direction REVERSELY表示反向,BIDIRECT表示双向 * @return 起始点和目的点之间的最短路径 */ - default List> shortestOptionalPath(@Param("srcId") I srcId,@Param("dstId") I dstId, - @Param("edgeTypeList") List edgeTypeList, - @Param("direction") String direction + default List> shortestOptionalPath(@Param("srcId") I srcId, @Param("dstId") I dstId, + @Param("edgeTypeList") List edgeTypeList, + @Param("direction") String direction ) { MethodModel methodModel = getMethodModel(); methodModel.setReturnType(Collection.class); methodModel.setResultType(NgPath.class); ClassModel classModel = getClassModel(this.getClass()); return (List>) MapperProxy.invoke(classModel, methodModel, - srcId, dstId,edgeTypeList,direction); + srcId, dstId, edgeTypeList, direction); } // endregion @@ -556,6 +555,7 @@ default List> shortestOptionalPath(@Param("srcId") I srcId,@Param("dst /** * 列出所有图空间 + * * @return 所有图空间 */ default List showSpaces() { From 4336640958357e49e653489842dc653ad195f211 Mon Sep 17 00:00:00 2001 From: knqiufan Date: Wed, 12 Jun 2024 22:31:04 +0800 Subject: [PATCH 2/3] - optimized showSpaces method code --- .../nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java b/src/main/java/org/nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java index 1ecb85b..a10a42e 100644 --- a/src/main/java/org/nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java +++ b/src/main/java/org/nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java @@ -7,6 +7,7 @@ import com.sun.istack.NotNull; import com.vesoft.nebula.client.graph.data.ResultSet; import org.nebula.contrib.ngbatis.exception.QueryException; +import org.nebula.contrib.ngbatis.handler.CollectionStringResultHandler; import org.nebula.contrib.ngbatis.models.ClassModel; import org.nebula.contrib.ngbatis.models.MethodModel; import org.nebula.contrib.ngbatis.models.data.NgPath; @@ -560,15 +561,10 @@ default List> shortestOptionalPath(@Param("srcId") I srcId, @Param("ds */ default List showSpaces() { MethodModel methodModel = getMethodModel(); - methodModel.setReturnType(ResultSet.class); - methodModel.setResultType(ResultSet.class); + methodModel.setReturnType(CollectionStringResultHandler.class); + methodModel.setResultType(String.class); ClassModel classModel = getClassModel(this.getClass()); - ResultSet resultSet = (ResultSet) MapperProxy.invoke(classModel, methodModel); - List spaceNames = new ArrayList(); - for (int i = 0; i < resultSet.rowsSize(); i++) { - spaceNames.add(resultSet.rowValues(i).get("Name").toString()); - } - return spaceNames; + return (List) MapperProxy.invoke(classModel, methodModel); } From 6047888b7723a203d817e86727f935837daf7e1c Mon Sep 17 00:00:00 2001 From: knqiufan Date: Sat, 21 Sep 2024 17:43:59 +0800 Subject: [PATCH 3/3] - Fix bugs --- .../nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java b/src/main/java/org/nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java index a10a42e..2a55d3c 100644 --- a/src/main/java/org/nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java +++ b/src/main/java/org/nebula/contrib/ngbatis/proxy/NebulaDaoBasic.java @@ -4,7 +4,6 @@ package org.nebula.contrib.ngbatis.proxy; -import com.sun.istack.NotNull; import com.vesoft.nebula.client.graph.data.ResultSet; import org.nebula.contrib.ngbatis.exception.QueryException; import org.nebula.contrib.ngbatis.handler.CollectionStringResultHandler; @@ -15,7 +14,10 @@ import org.springframework.data.repository.query.Param; import java.io.Serializable; -import java.util.*; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; import static org.nebula.contrib.ngbatis.proxy.NebulaDaoBasicExt.*; @@ -349,7 +351,7 @@ default Integer deleteByIdBatch(Collection ids) { * @param e 关系值 * @param v2 结束节点值 或 结束节点id */ - default void insertEdge(@NotNull Object v1, @NotNull Object e, @NotNull Object v2) { + default void insertEdge(Object v1, Object e, Object v2) { if (v2 == null || v1 == null || e == null) { return; } @@ -377,7 +379,7 @@ default void insertEdgeBatch(List triplets) { * @param edge 关系值 * @param dst 结束节点值 */ - default void insertEdgeSelective(@NotNull Object src, @NotNull Object edge, @NotNull Object dst) { + default void insertEdgeSelective(Object src, Object edge, Object dst) { if (dst == null || src == null || edge == null) { return; } @@ -394,7 +396,7 @@ default void insertEdgeSelective(@NotNull Object src, @NotNull Object edge, @Not * @param edge 关系值 * @param dst 结束节点值 */ - default void upsertEdgeSelective(@NotNull Object src, @NotNull Object edge, @NotNull Object dst) { + default void upsertEdgeSelective(Object src, Object edge, Object dst) { if (dst == null || src == null || edge == null) { return; }