2010-02-03 6 views
3

J'apprends à utiliser neo4j, mais je suis un peu confus sur son utilisation. Quand je suis en ajoutant des nœuds et des relations, je peux le faire comme ceci:Quelle est la différence entre GraphDatabaseService ou NeoService dans neo4j

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

Je pourrais aussi le faire comme ceci:

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

Quelle est la différence ici vraiment? Lequel dois-je utiliser? Pourquoi sont-ils 2 mécanismes différents? Est-ce juste l'évolution de l'API ici? :) Je veux utiliser l'API MetaModel et il a besoin d'un NeoService, donc le choix est clair, je suppose.

Répondre

5

Désolé, vous devriez utiliser le premier, puisque dans le dernier 1.0-RC1 l'espace de noms a été déplacé. C'est juste un nom, la sémantique est la même. Le deuxième exemple est obsolète et devrait être retiré de la documentation officielle. Où as-tu trouvé ça?

Cheers,

/Peter Neubauer

+0

Merci pour la réponse! J'essaie d'utiliser le MetaModel et il a besoin d'un NeoService dans le constator MetaModelImpl. – Kaitsu

2

Vous êtes sur place avec le commentaire de l'évolution de l'API. L'ancienne API est NeoService, vous ne devriez donc pas l'utiliser. Allez avec votre premier extrait. Pour plus d'informations sur le changement d'API, voir par ex. le courrier pour la dernière mise rc:

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

Si vous utilisez le dernier instantané (0,7-snapshot) de la composante méta-modèle, vous trouverez qu'il utilise la dernière API. Pour notre version 1.0 (devrait sortir Real Soon Now :), nous allons faire des versions non-SNAPSHOT de tous les composants qui utiliseront la nouvelle API.

-EE

+0

Il semble que le composant méta-modèle 0.7-SNAPSHOT utilise toujours l'ancien Neoservice. Donc, je ne peux pas utiliser la nouvelle API dans neo4j-kernel 1.0-rc (qui a GraphDataService). Dans le coffre du méta-modèle, cela semble être corrigé, bien que :) – Kaitsu

2

Et en ce qui concerne le méta-modèle, s'il vous plaît utiliser le composant méta-modèle (maintenant avec le artifactId Maven: Neo4j-méta-modèle).

Je remarque également que la vue d'ensemble des composants http://components.neo4j.org/neo4j-meta-model/ contient des exemples de code et des descriptions non valides. Je vais essayer de régler ça.

Questions connexes