java - Graql 插入查询 : duplicate Var objects

标签 java graph-databases vaticle-typeql vaticle-typedb

Var message = var().isa("message");
insert(message).execute();

Var relation = var().isa("connection")
    .rel("role1", id("existing-id"))
    .rel("role2", message);
insert(relation).execute();

执行以下命令会创建消息的两个实例。

这是预期的吗?如果是的话,是因为我没有分配ID,还是因为我使用了两条insert语句?

最佳答案

这是预期的行为。您的猜测是正确的,分配一个 id 可以解决问题:

Var message = var().id("my-message").isa("message");

发生这种情况的原因是 Var 不代表单个概念。相反,它代表了图表中要匹配的模式。在本例中,Var 仅表示“属于消息的事物”,而不表示任何特定消息。

您还可以指定一个变量名称,例如var 消息 = var("x"). ... 为此,您只需执行一次插入

关于java - Graql 插入查询 : duplicate Var objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39453659/

相关文章:

java - 如何通过在java中发送邮件来验证电子邮件地址是否确实存在

neo4j - 如何使用 cypher 为所有现有节点创建关系

graph - Grakn,创建由实体组成的实体?

JAVA Socket编程死循环

java - 如何在 Mockito 中模拟全局变量

Java有效地删除对象

graph - 蓝图中 Titan getType 的等价物是什么?

linux - 如何在 linux 服务器上对 neo4j 数据进行备份和恢复?

python - 使用 Grakn 的 Python API 客户端加载数据时出现问题

vaticle-typeql - 格拉克 : Can I load a schema or data from a GRAQL file via the Java API?