3

我正在学习使用neo4j,但对它的用法有点困惑。当我添加节点和关系时,我可以这样做:

GraphDatabaseService graphDb = new EmbeddedGraphDatabase("C:/temp/graphdb");
Transaction tx = graphDb.beginTx();
try {
  org.neo4j.graphdb.Node node = graphDb.createNode();
  ...

我也可以这样做:

NeoService neoService = new EmbeddedNeo("C:/temp/graphdb");
Transaction tx = neoService.beginTx();
try {
  org.neo4j.api.core.Node node = neoService.createNode();
  ...

这里真的有什么区别?我应该使用哪一个?为什么它们是两种不同的机制?这只是 API 演变吗?:) 我想使用 MetaModel API,它需要一个 NeoService,所以我猜那里的选择很明确。

4

3 回答 3

5

抱歉,您应该使用第一个,因为在最新的 1.0-RC1 中,命名空间已被移动。这只是命名,语义相同。第二个示例已过时,应从官方文档中删除。你是在哪里找到那个东西的。

干杯,

/彼得纽鲍尔

于 2010-02-03T08:24:24.593 回答
2

您对 API 演变评论很满意。旧的 API 是 NeoService,所以你不应该使用它。使用您的第一个片段。有关 API 更改的更多信息,请参见最新 rc 的发布邮件:

http://www.mail-archive.com/user@lists.neo4j.org/msg02378.html

如果您使用元模型组件的最新快照(0.7-SNAPSHOT),您会发现它使用了最新的 API。对于我们的 1.0 版本(应该很快就会发布 :),我们将为所有将使用新 API 的组件制作非 SNAPSHOT 版本。

-EE

于 2010-02-03T08:29:56.267 回答
2

关于元模型,请使用元模型组件(现在使用 maven artifactId:neo4j-meta-model)。

我还注意到组件概述http://components.neo4j.org/neo4j-meta-model/有一些无效的示例代码和描述。我会尝试解决这个问题。

于 2010-02-03T08:54:30.780 回答