В чем разница между GraphDatabaseService или NeoService в Neo4j
Вопрос
Я учусь использовать 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();
...
В чем эта разница здесь? Какой из них я должен использовать? Почему они 2 разных механизма? Это просто эволюция API здесь? :) Я хочу использовать Metamodel API, и ему нужен неосервис, поэтому выбор там ясно, я думаю.
Решение
Извините, вы должны использовать первый, поскольку в последнем 1.0-RC1 пространство имен было перемещено. Это просто название, семантика одинакова. Второй пример устарел и должен быть удален формирование официальной документации. Где вы нашли это?
Ваше здоровье,
/ Питер Неубауэр
Другие советы
Вы заметитесь с комментарием Evolution API. Старый API - неосервис, поэтому вы не должны использовать это. Иди с первым фрагментом. Для получения дополнительной информации об изменении API см. Например, Mail Release для последних RC:
http://www.mail-archive.com/user@lists.neo4j.org/msg02378.html.
Если вы используете последний снимок (0,7-моментальный) из компонента META-MODES, вы обнаружите, что он использует новейшие API. Для нашего выпуска 1.0 теперь должно быть реально в ближайшее время :), мы собираемся внести релизы без снимков всех компонентов, которые будут использовать новую API.
-
А по поводу Meta Model, пожалуйста, используйте компонент Meta-Model (сейчас с Maven Artifactid: Neo4j-Meta-Model).
Я также замечаю, что обзор компонентов http://components.neo4j.org/neo4j-meta-model/ Имеет какой-то неверный пример код и описания. Я постараюсь исправить это.