我正在学习使用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,所以我猜的选择很明显。
答案 0 :(得分:5)
对不起, 你应该使用第一个,因为在最新的1.0-RC1中,命名空间被移动了。这只是命名,语义是一样的。第二个示例已过时,应从官方文档中删除。你在哪里找到的?
干杯,
/ peter neubauer
答案 1 :(得分:2)
您已经发现了API演变评论。旧API是NeoService,因此您不应该使用它。继续你的第一个片段。有关API更改的更多信息,请参阅例如最新rc的发布邮件:
http://www.mail-archive.com/user@lists.neo4j.org/msg02378.html
如果您使用元模型组件的最新快照(0.7-SNAPSHOT),您会发现它使用最新的API。对于我们的1.0版本(应该是Real Soon Now :),我们将发布将使用新API的所有组件的非SNAPSHOT版本。
-EE
答案 2 :(得分:2)
关于元模型,请使用元模型组件(现在使用maven artifactId:neo4j-meta-model)。
我还注意到组件概述http://components.neo4j.org/neo4j-meta-model/有一些无效的示例代码和描述。我会尽力解决这个问题。