#spring #neo4j
#spring #neo4j
Вопрос:
Возможно ли использовать транзакции, когда Neo4j используется в качестве автономного сервера? Я использую функции из моих репозиториев Spring, и, вероятно, каждая из них выполняется как отдельная транзакция, но я хотел бы объединить их в одну. Возможно ли это сделать?
Ответ №1:
SDN пока не поддерживает удаленные транзакции (которые работают только с конечной точкой транзакции и Cypher).
Таким образом, у вас есть возможность ускорить вашу работу, переместив обработку объектов SDN на сервер и предоставив своим клиентам REST API уровня домена (либо с помощью Jersey, либо SD-REST).
смотрите: http://inserpio.wordpress.com/2014/04/30/extending-the-neo4j-server-with-spring-data-neo4j
Комментарии:
1. На самом деле сейчас производительность кажется очень плохой. В журналах базы данных neo4j я вижу, что когда я запрашиваю какой-либо узел, появляется запрос GET не только для узла, но и отдельный для каждого отношения. Более того, когда я пытаюсь сохранить некоторый узел с обновленными отношениями, я вижу, что сначала Spring еще раз извлекает все отношения отдельными запросами (почему?, чтобы сравнить, были ли какие-либо изменения?). После этого он использует отдельный PUT для обновления каждого, даже не каждого отношения, а каждого свойства в каждой взаимосвязи! В результате время отклика моего простого веб-сервиса составляет 20 секунд, так что это бесполезно.