【发布时间】:2023-01-15 04:07:08
【问题描述】:
我们可以使用 apache Gremlin 域特定语言 (DSL) 进行突变(创建、更新和删除)吗?
@GremlinDsl(traversalSource = "com.sample.dsl.EmpTraversalSourceDsl")
public interface EmpTraversalDsl<S, E> extends GraphTraversal.Admin<S, E> {
public default Vertex create(Employee employee) {
return addV("employee");
}
}
每次,当我调用此方法时,它都会创建数据库中现有内容的两倍。
前任:
如果有,2 员工然后它变成 4。4 变成 8 等等......
【问题讨论】:
-
听起来您的代码相当于
g.V().addV()而不是g.addV() -
正确的。
coalesce(__.V().hasId(id), __.addV("employee").property("O", "K"));工作正常。关于在 dsl 中没有coalesce时如何做的任何想法? -
如果您尝试进行条件写入或更新插入,则需要遵循以下模式:kelvinlawrence.net/book/Gremlin-Graph-Guide.html#upsert
-
只想使用
addV(),没有任何条件。我想,在DSL中,默认情况下它以g.V()开头。这就是为什么,它复制了@KelvinLawrence 提到的插入 -
您是否能够共享更多代码,尤其是在您使用 DSL 的地方?
标签: gremlin tinkerpop tinkerpop3 gremlin-java