2010-02-03 17 views
3

我正在学习使用neo4j,但对它的用法有点困惑。当我添加节点和关系,我可以做这样的:neo4j中的GraphDatabaseService或NeoService有什么区别

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,所以我想这个选择很明确。

回答

5

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

干杯,

/彼得·纽鲍尔

+0

感谢您的回答!我试图使用MetaModel,它需要MetaModelImpl构造函数中的NeoService。 – Kaitsu 2010-02-03 08:29:35

2

你当场就与API进化评论。旧的API是NeoService,所以你不应该使用它。去你的第一个片段。有关API更改的更多信息,请参阅最新的RC发布邮件:

http://www.mail-archive.com/[email protected]/msg02378.html

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

-EE

+0

似乎元模型组件0.7-SNAPSHOT仍然使用旧的Neoservice。所以,我不能在neo4j-kernel 1.0-rc(有GraphDataService)中使用新的API。在元模型树干中,这似乎是固定的,但:) – Kaitsu 2010-02-03 13:51:07

2

以及有关的元模型,请(使用Maven的artifactId现在:Neo4j的-元模型)使用元模型组件。

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