Я создал модель neo4j с текстовым файлом из cypher
утверждений. Теперь я хотел бы создать приложение, использующее эту базу данных, и я буду использовать SDN4. В моем классе @NodeEntity
мне нужно будет иметь GraphID
типа Long
declared. Но этот идентификатор генерируется SDN4, а в моей базе данных нет таких идентификаторов. Есть ли способ создать их с помощью Cypher, чтобы я мог просто правильно сопоставить свои объекты Java с уже существующими узлами и отношениями в базе данных?
Использование Cypher для автоматического создания идентификаторов для SDN4
Ответы (1)
Поле @GraphId
всегда является внутренним идентификатором узла или отношения, назначенным Neo4j, и для него нельзя установить пользовательские значения. Вероятно, вы хотите назначить собственное значение идентификатора как свойство узла. Это можно сделать, добавив собственное поле id:
@GraphId Long graphId; //required, this is the internal node/rel ID that must never be assigned by your code
Long id; //your own primary key
Теперь, когда ваша база данных содержит узлы со свойством id
, назначенным оператором в вашем скрипте Cypher, загрузка объектов через SDN заполнит эти поля id
в вашем объекте домена.
Если у вас нет собственных первичных ключей, но вам все равно нужен идентификатор, вы можете использовать плагин UUID. который будет автоматически назначать UUID узлам при их создании любым способом (браузер SDN/Neo4j/API и т. д.).
person
Luanne
schedule
14.06.2016
просто чтобы уточнить,
graphID
, упомянутый выше, заполняется SDN или neo4j? Когда я создаю узел из Cypher, он получает идентификатор. Будет ли этот идентификатор автоматически сопоставлен с graphID
? В этом случае мне не нужно дополнительное поле UUID — я просто хочу, чтобы мои объекты были правильно сопоставлены с уже существующими узлами! У меня сложилось впечатление, что GraphID должен генерироваться SDN...
- person aaaaarrrgghhh; 15.06.2016
ГрафИд генерируется Neo4j. Когда вы создаете узел через Cypher, Neo4j присваивает этот идентификатор. Когда вы загружаете узел через SDN, этот идентификатор сопоставляется с графическим идентификатором для вас.
- person Luanne; 15.06.2016